####アプリケーションを作成。
rails new test_env
cd test_env
####Gemfile
に以下を追記。
Gemfile
group :test do
gem 'spork'
gem 'guard-spork'
end
group :development, :test do
gem 'rspec-rails'
gem 'guard'
gem 'guard-rspec'
gem 'factory_girl_rails'
end
####インストール。
bundle install
####.rspec
とspec/spec_helper.rb
を生成する。
rails generate rspec:install
####Sporkを使用するように、.rspec
に以下を追記。
.rspec
--drb
####動作確認用に、scaffoldでUser
を生成。
rails generate scaffold user name:string age:integer
####マイグレーション。
rake db:migrate
####以下のようにして、spec/spec_helper.rb
に、spork用のエントリを追加。
spork --bootstrap
####FactoryGirl
の変更を反映させるため、spec/spec_helper.rb
に以下のように追記。
spec/spec_helper.rb
Spork.each_run do
# This code will be run each time you run your specs.
FactoryGirl.reload ### added
end
####Guardfile
を生成。
guard init spork
guard init rspec
####spec/factories/
以下の変更に対して対応するテストが行われるように、Guardfile
に以下のように追記。
Guardfile
require 'active_support/inflector' ### added
# A sample Guardfile
# More info at https://github.com/guard/guard#readme
(中略)
# Turnip features and steps
watch(%r{^spec/acceptance/(.+)\.feature$})
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
watch(%r{^spec/factories/(.+)\.rb$}) do |m| ### added
%W[ ### added
spec/models/#{m[1].singularize}_spec.rb ### added
spec/controllers/#{m[1]}_controller_spec.rb ### aaded
] ### added
end ### added
end
####テスト用DBの準備。
rake db:test:prepare
以上で、コードの変更に対して即座にテストが走る環境になる。