Ruby on RailsでAJAXをテストするには?

Ruby on RailsでAJAXをテストする方法をアドバイスできますか? たとえば:私はボタンをクリックして、TestController#newに行くクエリを作成し、そのメソッドにはrespond_with(@test)とnew.js.erbがあります.htmlはHTML形式です。 OK、私はこのリンク/ボタンをclick_toすることができます、xhrクエリは動作しますが、私はテストする必要がある応答を取得しません。

何か身体がこれで助けてくれますか? 私はRspecを使用しています。

3

3 答え

あなたはCapybaraとSeleniumを使うべきです。 この素晴らしいRailscast をご覧ください。

6
追加された

Rails 4.2では、ajaxリクエストを送信するために、get、post、patch、put、またはdeleteメソッドを呼び出すために、オプションのハッシュ引数をキー "xhr:true"で設定します。 例えば:

get users_path + '?page=2', xhr: true

更新されたページのいくつかのHTML要素を確認するためにassert_selectを使用します。

4
追加された

あなたのAjaxリクエストが何を持っているかによって、実際には複数のレベルでテストするのが最良かもしれません。

コントローラーテストでコントローラーの応答をテストします。

jasmineのような純粋なJSテストフレームワークを使ってJSを正しく応答してください。

キュウリや統合rspec(capybara/seleniumの助けを借りて)のようなものを使ってアプリケーションを流れるあなたの流れをテストしてください。

1
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript