RailsのEnd to End テストを書いています。マイブームのTurnip 注1) を使ってCucumberより簡単に書けることを感じていたのですが、JavaScriptの解釈をさせるのに Capybara-webkitを使えばよいとして、実際のxx_steps.rbでどう書けばよいのかわかりません。
RSpecでCapybara/Capybara-webkitを使うには :js => true ですが
Capybara.javascript_driver = :webkit としておけば、describe や it に :js => true がついてる奴だけ capybara-webkit を使ってくれる...
注2)
Ruby1.9以降は js: true がすっきり
context "span#touchmeをクリックすると", js: true do
before { find("span#touchme").click }
specify do
within('#message') do
expect(page).to have_content("Hello!")
end
end
end
注3)
Turnipのxx_steps.rb で step節に ,js: true を入れると
step '日本語表示にする',js: true do
click_link '日本語'
end
wrong number of arguments (2 for 1) (ArgumentError)
をくらいます。
Turnipで Capybara-webkit を使う方法を求めています。よろしくお願いします。
参考
注1) TurnipがCucumberの問題を解決しようとしている!
https://twitter.com/iR3/status/279448539090800640
注2) capybara-webkit を headless(画面なし・Xなし)で動かした
http://d.hatena.ne.jp/babie/20110430/1304136144
注3) RSpecとCapybaraでJavaScript/Ajaxをテストする
http://www.oiax.jp/rails/zakkan/testing_javascript_with_rspec_and_capybara.html
Capybara-webkitによる高速インテグレーションテストまとめ
http://d.hatena.ne.jp/sandmark/20120403/1333447180