(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開發者都傾向於用繼承測試實現