2017-07-27 1 views
0

私は別のサービスにリクエストするクラスがあり、そのリクエストを渡してエラーをテストしたい。私のテストでRSpecのモックリクエストタイムアウト

response = RequestObject.post #this triggers a HTTP request 

    LocalObject.update(foreign_id: response.id, retrieved_at: Time.current) 

は、「私はアウト要求をスタブと成功にJSONを返すが、私はその応答にエラーが発生した場合:foreign_id:retrieved_atが上がらないということをテストしたい:

は、コードは次のようになります設定する。

私はこのような成功したリクエストスタブ:

allow(RequestObject).to receive(:post).and_return({id: 1,}) 

タイムアウトエラーを上げるRequestObjectを模擬するための良い方法は何を?

(私は私の要求のためのFaraday gemを使用しています)

+0

重複:https://stackoverflow.com/questions/2067801/mocking-an-error-exception-in-rspec-not-just-its-type?rq=1 –

答えて

1

あなたはエラーを模擬するために#and_raiseを使用することができます。

allow(RequestObject).to receive(:post).and_raise(SomeError) 

そのコードパスをテストする必要があります。

Hereさんのrspecドキュメントへのリンクです。