我有一个类向另一个服务发出请求,我想测试处理该请求的错误。
代码如下所示:
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 :(得分:1)
您可以使用#and_raise
模拟错误。
allow(RequestObject).to receive(:post).and_raise(SomeError)
这应该允许您测试该代码路径。
Here是指向rspec文档的链接。