得益于强大的 Railties,安装 rspec-rails
和 factory_girl_rails
这两个gem 之后,一切就都 搞定了。Rails 的生成器将不会
在 test
文件夹中生成Test::Unit 测试文件,而是在 spec
文件夹中生 成 RSpec测试文件(生成的预构件存在 spec/factories
文件夹中)。不过,如果需要,还可以对生 成器做些设置。如果使用 scaffold
生成器生成程序代码的话,可能就想自定义一下设置,因
为默认的生成器会生成很多测试文件。打开 config/application.rb
文件,在 Application 类中加入下面的代码:
1 2 3 4 5 6 7 8 9 10
| config.generators do|g| g.test_framework :rspec, fixtures: true, view_specs: false, helper_specs: false, routing_specs: false, controller_specs: true, request_specs: false g.fixture_replacement :factory_girl, dir: "spec/factories" end
|
其中:
fixtures: true
的意思是为各模型生成测试固件(使用 Factory Girl
创建的预构件,而不是默认的固件)
view_specs: false
的意思是不生成"视图测试"。
helper_specs: false
的意思是生成控制器时不生成对应的帮助方法测试文件。
routing_specs: false
的意思是不生成针对 config/routes.rb
的测试文件。
g.fixture_replacement :factory_girl
告知 Rails
使用预构件代替固件,把预构件存放在 spec/factories
文件夹中