问题描述
|
在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
组织测试的最常规方式是什么,这样当其他人跳到这个项目时,他们不会骂我吗?
解决方法
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