我想模拟一个用0
调用时返回整数get_auth_key.api_response_code
的服务。
这是我到目前为止所拥有的:
before(:each) do
PolicyObjects::BpointRequestPolicy.any_instance.stub(:get_auth_key).and_return(OpenStruct.new(api_response_code: 0))
end
我想避免在测试中为此创建类,因为我认为这太过分了。在代码库中的某个地方,response = PolicyObjects::BpointRequestPolicy.new(...)
被调用,然后进行比较:if response.api_response_code == 0
。我希望它返回0
以在测试中达到条件条件。
最佳实践或最简单的方法是什么?
答案 0 :(得分:1)
这是一个很好的用例,如果您知道要嘲笑的类,则是instance_double
的两倍甚至更好:
let(:api_resonse) { instance_double("SomeResponseClass", api_response_code: 0) }
before(:each) do
PolicyObjects::BpointRequestPolicy.any_instance.stub(:get_auth_key).and_return(api_response)
end