【发布时间】:2019-08-12 22:07:26
【问题描述】:
在我的工作中,我们有许多具有类似功能的 Rails 项目。我们已将一些常用功能重构为包含在所有项目中的 gem。
gem 只是另一个 rails 项目,提供模型、控制器和视图以添加到包含它的项目中。
如何测试宝石?我不清楚如何独立测试它,但是在包含它的项目中编写 gem 的测试是没有意义的。
【问题讨论】:
标签: ruby-on-rails ruby rspec
在我的工作中,我们有许多具有类似功能的 Rails 项目。我们已将一些常用功能重构为包含在所有项目中的 gem。
gem 只是另一个 rails 项目,提供模型、控制器和视图以添加到包含它的项目中。
如何测试宝石?我不清楚如何独立测试它,但是在包含它的项目中编写 gem 的测试是没有意义的。
【问题讨论】:
标签: ruby-on-rails ruby rspec
您应该在 gem 的项目本身中进行测试。
作为示例,您可以看到cancancan 的目录结构与所有其他 Rails 项目相似,具有根级别的“spec”文件夹。
根据您的 gem 设置,您可能必须使用 rspec 而不是 rspec-rails,但这里没有任何真正的魔法酱。您应该在 gem 的代码库中编写涵盖 gem 本身功能的测试。但是您不应该在包含它的项目中为 gem 编写测试。或者至少不会比其他 gem 多(所以可能会有一些模拟/验证/界面构建,但没有直接测试 gem)。
【讨论】: