在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
组织测试的最常规方法是什么,以便当其他人跳上这个项目时他们不会诅咒我的名字?
答案 0 :(得分:4)
Rspec与上述类似,只是省略了'app'目录,例如(来自rails root):
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助手有自己的目录:
spec/support/custom_matchers.rb
可能不是会议,但我们把工厂放在他们自己的目录上:
spec/factories/user_factories.rb