(1)Gemfile中加入,如下Gem包:
rspec-rails
factory_girl_rails
faker
capybara
database_cleaner
launchy
selenium-webdriver
rspec-rails和factory_girl_rails在测试组和开发组都需要,开发需要这两个gem包用于rails g 命令生成代码。
(2)配置好测试库database.yml,执行bundle exec rake db:create:all
(3)bundle exec rails generate rspec:install 生成RSpec配置文件(.rspec),用来存放测试文件的文件夹(spec),以及一个存储帮助函数的文件(spec/spec_helper.rb),可以在这个帮助函数文件中定制如何和程序代码交互。
可以在.rspec中加入 --format documentation,将rspec跑的结果已文档形式展示
(4)为了使用scaffold不再生成Test::Unit测试文件,而生成rspec测试文件,可以在config/application.rb文件,Application类中加入:
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
g.test_framework接受了很长一串参数,第一个参数指定了使用的测试框架为rspec,后面的参数分别对应的是
fixtures 为各模块申城测试固件
view_specs 是否生成“视图测试”
helper_specs 是否生成帮助方法测试
routing_specs 是否生成routes.rb测试文件
controller_specs、request_specs都是对应测试
g.fixture_replacement :factory_girl, dir: "spec/factories" 告诉rails使用factory_girl生成与构建代码固件,并放在spec/factories文件夹中
(5)rake db:test:clone 将develop数据库结构克隆到test库
注意:一般不生成视图测试,由于编写可靠地试图测试是很困难的事,且不好维护,UI相关的测试Rials开发者都倾向于用继承测试实现