前回、capybara-webkitをbundle installしてコケた時の対処法という記事を書いたのですが、Capybaraを使う際に知っておきたいことを読むと、QTというのはなかなか曲者のようです。そこで、同じheadless driverであるPoltergeistを採用することにします。
環境
- mac OSX10.9.5
- rails3.2
- ruby2.1.4
- Homebrew
手順
Gemfileにgem poltergeist
と記述してbundle installします。
データベースのトランザクションの扱いも変わるので、gem database_cleaner
も入れておきます。
続いてphantomjsをbrew install phantomjs
でインストールしましょう。
今度はセットアップです。
spec/rails_helper.rb
require 'spec_helper'
# ...略
require 'capybara/poltergeist'
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
Capybara.javascript_driver = :poltergeist
config.use_transactional_fixtures = false
# database_cleaner関連のセットアップ
require 'database_cleaner'
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
end
後はscenarioにjs :true
オプションを付けるとpoltergeistが動作して
javascriptのテストを行うことが出来ます。
参考
http://qiita.com/jnchito/items/bdd80c1085fa082e7d7a#1-3
http://qiita.com/katryo/items/e33197a4fa26de42a3c4