前回、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でインストールしましょう。
今度はセットアップです。
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