私のRails 3.2プロジェクトでは、Javascriptからhttp://jsonip.com
に時々HTTPリクエストを送信します。しかし、@javascript
タグでCucumberを実行すると、リクエストが非常に頻繁に送信されます。これは明らかに非常に望ましくなく、私はそのような要求をスタブしたいと思います。今、私は、私はこのためにwebmock
からstub_request
を使用すると考えていたので、のような:キュウリ/カピバラ/セレンのAjaxリクエストをスタブしていますか?
Before do
stub_request(:any, /.*jsonip.*/).to_return(:body => '{"ip":"24.104.73.2","about":"/about"}')
end
それでもこれに代わって、jsonip
はJavaScriptから呼び出されます。そして、私はwebmock
が実際にAjaxリクエストをスタブしていないことを発見しました(少なくとも上記のstub_request
ステートメントではありません)。
Cucumber/Capybara/SeleniumセットアップでAjaxリクエストをスタブする正しい方法は何ですか?
うーん、そう...私はそれを恐れていました。 Rails環境が開発環境の場合は0、テスト環境の場合は1、プロダクション環境の場合は2を保持するJavascript変数を生成するだけで動作します。変数が1の場合、外部サービスへのAjax呼び出しを防ぎます。最も美しい解決策ではありませんが、機能します。ありがとう、Iafonov。 –