前提条件
OS X 10.9.3
Rails3.2にシンプルなBDD環境を整えてみたので備忘録
poltergeist では phantomjs が必要になるようなので brew でインストール
shell
$ brew install phantomjs
Rspecは、2系を選択
Gemfile
group :development, :test do
gem 'rspec-rails', '2.14'
gem 'capybara'
gem "poltergeist"
gem 'turnip'
end
gem を bundle install して、rspecの初期化を実行する。
feature ファイルと Steps ファイル用のディレクトリを作成
shell
$ bundle install --path vendor/bundler
$ bundle exec rails generate rspec:install
$ mkdir features
$ mkdir steps
.rspec に、パラメーターを追加
.rspec
-r turnip/rspec
spec_helper.rb の "RSpec.configure do |config|"の前あたりに Turnip 関連のファイルをロード
spec/spec_helper.rb
# Turnip settings
Dir.glob("spec/**/*steps.rb") { |f| load f, true }
require 'capybara/dsl'
require 'capybara/rspec'
require 'capybara/poltergeist'
require 'turnip'
require 'turnip/capybara’
# web driver
Capybara.register_driver :poltergeist_debug do |app|
Capybara::Poltergeist::Driver.new(app, :inspector => true)
end
テストファイルが hogehoge.feature であればテストの実行コマンドは以下のように
$ bundle exec rspec -r turnip/rspec spec/features/hogehoge.feature
Driverに poltergeist を使う場合は、使いたい箇所で current driver に設定する
hogehoge_steps.rb
# encoding: utf-8
Capybara.current_driver = :poltergeist_debug
step 'there is a monster' do
visit '/monsters'
page.driver.save_screenshot('/your/evidence/ss_00001.png')
end