3

在 Rails 项目中创建单元测试时,我问自己的第一个问题是“组织单元测试的约定是什么”,因为几乎所有其他内容都是由约定决定的。另外,我很好奇 MiniTest、TestUnit 和 Rspec 之间的约定是否发生了变化。

到目前为止,我所做的是在我的 test/unit 目录中镜像我的 Rails 目录结构,如下所示:

[Rails Root]
 /lib/
  ./postgres.rb
  ./awesome_parser.rb
 /app/helpers
  ./psychic_helper.rb

 /test/unit/
  ./lib/postgres.rb
  ./lib/awesome_parser.rb
  ./app/helpers/psychic_helper

组织测试的最传统方式是什么,这样当其他人加入这个项目时,他们就不会诅咒我的名字?

4

1 回答 1

4

Rspec 与上面类似,除了省略了“app”目录,例如(来自 rails 根目录):

spec/controllers/user_controller_spec.rb
spec/models/user_spec.rb
spec/helpers/user_helpers_spec.rb

但是lib目录等还是用的:

spec/lib/user_stuff_spec.rb

集成测试跨越边界,所以获取自己的目录:

spec/integration/route_specs.rb

规范助手有自己的目录:

spec/support/custom_matchers.rb

可能不是惯例,但我们将工厂放在自己的目录中:

spec/factories/user_factories.rb
于 2011-05-27T20:44:48.453 回答