実際に(コメントで)フランシコに触発されて、私は自分の知識を書き留めます. 私は自分の答えを書いています。他の人にも役立つかもしれません....
最初に言及したいのは、私は私の質問に次のように答えることです – 統合テストのみを行う. きゅうりとセレン入り。ジャスミンを使用した特定の JavaScript テスト。
ただし、cucumber (edge) rails (3.1)、capybara、および selenium との統合テストでは、いくつかのことに注意する必要があります。
ほら、すべての宝石が更新されていることを確認してください!
1) ドライバをまだ有効にしていない場合は有効にします
features/support/capybara.rb
Capybara.javascript_driver = :selenium
2) 現時点では、Firefox <=4 のみが Rails 用の webdriver selenium で動作します。これは、ラックなどの各コンポーネントを最初から構成およびインストールするのに何時間も費やした後でもほとんどわからないためです。
3)カピバラ自体はあまり処理しません。これは、リスト、特にjquery-tokeninputなどのクリックに役立ちます。
3.1) リスト内のトークンからアイテムを選択するためにこれを使用します。
When(/^I select the option containing "([^\"]*)" in the Tag List/) do |text|
find("li:contains('#{text}')").click
end
このメソッドは、find ではなく「locate」で見つかる場合があります。これを試さないでください。api / ドライバーが find に変更されています。Find は自動的に待機し、dom 検索要素に加えて Ajax 応答をチェックします。
4) JS / Ajax 応答コードに独自のヘルパー / ファインダー / クリック ルーチンを追加します。これは「単なる」統合テストであることに注意してください。JS コードを yasmine または別の js テスト フレームワークでテストすることをお勧めします。
詳細については、Ryan Bates (http://railscasts.com) の Screencasts も参照してください。Rails のテストに関するいくつかのトピックをカバーしています。Javascriptの最新のものを確認してください。
またはこのブログ: http://openmonkey.com/2010/04/09/javascript-testing-with-cucumber-capybara/
(thnx francisco)
これが他の誰かにも役立つことを願っています。