Eli*_*jah 3 ruby unit-testing ruby-on-rails testunit
在 Rails 项目中创建单元测试时,我问自己的第一个问题是“组织单元测试的约定是什么”,因为几乎所有其他内容都是由约定决定的。另外,我很好奇 MiniTest、TestUnit 和 Rspec 之间的约定是否发生变化。
到目前为止,我所做的是将 Rails 目录结构镜像到 test/unit 目录中,如下所示:
[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
Run Code Online (Sandbox Code Playgroud)
组织测试的最传统方式是什么,这样当其他人加入这个项目时他们就不会咒骂我的名字?
Rspec 与上面类似,只是省略了“app”目录,例如(来自 Rails 根目录):
spec/controllers/user_controller_spec.rb
spec/models/user_spec.rb
spec/helpers/user_helpers_spec.rb
Run Code Online (Sandbox Code Playgroud)
但lib目录等还是用的:
spec/lib/user_stuff_spec.rb
Run Code Online (Sandbox Code Playgroud)
集成测试跨越边界,因此获得自己的目录:
spec/integration/route_specs.rb
Run Code Online (Sandbox Code Playgroud)
Spec 助手有自己的目录:
spec/support/custom_matchers.rb
Run Code Online (Sandbox Code Playgroud)
可能不是惯例,但我们将工厂放在自己的目录中:
spec/factories/user_factories.rb
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
647 次 |
| 最近记录: |