2017-07-27 82 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 AREN」 t集。

我存根像這樣成功的請求:

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文檔的鏈接。