私のプロジェクトでは、rake test を使用してライブラリをテストしています。たとえば、次のようなメソッドがありますconnection.users.add_users(options)
json_response = check_users(options)
batch = nil
Timeout::timeout(30) do
begin
sleep 1
batch = connection.batches.find(json_response["batch_id"])
end while batch.state !="completed"
end
connection.users.add_users(batch.target_id, options)
そのため、最初にサービスに対して HTTP 要求を行い、次に応答 (batch_id) を取得し、バッチが終了するまでループしてから、別の要求を行い、応答を返します。
通常、仕様では私はそうします
let(:connection){setup_test_connection('{"batch_id": 344235}', '202')}
これは stubconnection
の応答ですが、このメソッドの場合、最初の呼び出しのみをスタブしてから、サービスに実際のリクエストを送信しようとするため、エラーが発生します (その時点でサービスが実際にダウンしているためタイムアウト)。
connection
のクラス メソッドのすべての可能な呼び出しをスタブする方法はありますか?