2

新しいキュウリ テストの一環として、外部 API リクエストをモックする必要があります。私の通常のやり方は、最初に呼び出しを行うテストを作成し、WebMock がそれについて文句を言うことを期待することです。次に、WebMock が提供する情報を使用して、リクエストをスタブします。

しかし、このレポ (私にとっては初めて) では、WebMock はリクエストをインターセプトしません。タイムアウトするだけです。さらに興味深いことに、rspec では期待どおりに動作します (リクエストの試行をインターセプトし、それをモックする方法を教えてくれます) が、キュウリではそうではありません。

私はこれを持っていますfeatures\support\webmock.rb:

WebMock.disable_net_connect!(:allow_localhost => true)

私も同じ行を入れてみましたfeatures\support\env.rb。それでもリクエストを許可します。

もちろん、これを別の方法でスタブ化する方法を理解することはできますが、間違った場合にテストがライブ呼び出しを行う可能性があることは気になります。誰でも助けることができますか?

アップデート:

外部リクエストが実際に行われないようにしていると判断しました(:allow_localhost => true) が、不正なリクエストを示す WebMock メカニズムをトリガーせず (例外をレスキューすると仮定します)、代わりにリクエストが単にタイムアウトします。理由はまだわかりません。

更新 2:

問題が見つかりました。このリポジトリは、カスタム クライアント gem を使用して別の内部サービスと通信します。その gem は接続エラーをレスキューするため、webmock エラーは飲み込まれます。

4

0 に答える 0