【问题标题】:Where to put test class for "normal" Ruby classes in Rails?在 Rails 中将“普通”Ruby 类的测试类放在哪里?
【发布时间】:2015-06-14 21:31:12
【问题描述】:
我在lib目录下创建了一个模块(好像是你放的地方)。它有一种方法对我的许多模型类都很有用。
我想对其进行单元测试。但是,当我尝试在 test 的 model 文件夹中进行测试时,它失败了:
Minitest::UnexpectedError: NoMethodError: undefined method `type' for nil:NilClass
所以这可能是错误的。测试应该在哪里,它应该继承什么等才能工作?
【问题讨论】:
标签:
ruby-on-rails
ruby
unit-testing
testing
【解决方案1】:
您的测试几乎总是遵循相同的文件夹结构。所以如果你有:
app
├── controllers
├── models
您的测试目录将是:
spec
├── controllers
│ └── some_controller_spec.rb
├── models
│ ├── some_model_spec.rb
├── rails_helper.rb
└── spec_helper.rb
在您的实例中,如果您有一个 lib 文件夹,您只需将一个 lib 文件夹添加到您的 spec/test 目录。