こういうコードに対して
class SomeClass
include Service # これを include することで SomeClass.call(foo) という形で呼べるようにしています。↓のYourClassを同様です。
def initialize(foo)
@foo = foo
end
def call
response = YourClass.call(@foo)
unless response.success?
raise StandardError, 'your error message comes here'
end
...
end
end
こういう mock と mock response を書く。
let(:mock_response) { OpenStruct.new(success?: true, body: { bar: 'bar' }.to_json) }
before do
allow(YourClass).to receive(:call).and_return(mock_response)
end
異常系のテストをする時は、mock_response
を success?: false
とする。
let(:mock_response) { OpenStruct.new(success?: false, body: { bar: 'bar' }.to_json) }