2016-09-10 4 views
2

あなたの入力時に即座に検索できる検索インターフェイスがあります。 AJAXリクエストは必要なときにのみ送信するように最適化されているので、正しく動作するかどうかをテストしたい。Capybara RspecでAjaxリクエストが送信されたかどうかを確認する方法は?

Ajaxリクエストが送信されたかどうかを確認するにはどうすればよいですか? (他のテストケースでも)Ajaxリクエストが中止されたかどうかを確認するのも良いでしょう。

答えて

3

カピバラでは、あなたはしません。 Xavierが指摘するように、Capybaraはユーザーをエミュレートすることに重点を置いています。ユーザーはajaxリクエストなどを知らず、結果だけを表示します。要求が発生している間に画面に表示されるスピナー(またはその他の視覚的なアイテム)を持っている場合は、その結果が表示されるかどうかを確認したり、正しい結果が表示されるかどうかを確認できます。

代わりに、AJAXリクエストの実際の最適化動作をテストしようとしている場合は、おそらくjasmine/jasmine-ajaxなどのJSテストを検討したいと考えています。

+0

スピナーのアイデアをありがとう、私は実際に結果の不透明度を薄暗くするので、私はそれが私のために働くと思う、私にチェックさせてください! – Aurimas

2

jQueryを使用している場合、jQuery.active functionはあなたの質問に答えます。

私は、あなたのライブラリコードで何らかのトラッキングをせずに、生のXHRリクエストでこれを取得する方法がないと確信しています。

メタポイントとして、カピバラは、ユーザーが観測可能な動作をアサートするときに最も効果的です。 ajaxリクエストが発生したかどうかを確認するのではなく、特定の検索結果や提案が表示されているかどうかを確認できますか?

+0

私はjQuery.activeについて知っていましたが、どういうわけか信頼できないようです。ローカルフィルタリングとAJAX後のフィルタリングの結果は同じです(AJAXは結果が実際に正しいとバックエンドで検証しますが、時には不要です)。しかし、良い点! – Aurimas

関連する問題