(1)Gemfile中加入,以下Gem包:web
rspec-rails数据库
factory_girl_railsruby
fakerapp
capybara框架
database_cleaner函数
launchy测试
selenium-webdrivercode
rspec-rails和factory_girl_rails在测试组和开发组都须要,开发须要这两个gem包用于rails g 命令生成代码。orm
(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开发者都倾向于用继承测试实现