I have a code that looks like this:
def call(some_id:)
verify_before = @verify.call(some_id)
return verify_before if verify_before.sucess?
did_something = @processor.call(some_id)
return did_something unless did_something.sucess?
@verify.call(some_id)
end
I would like to mock @verify
so in the first time it will return sucess?
= false
and on the second call it will return true
What is the best approach?
Yes, you can tell RSpec mocks to return different values on each call.
The following example would return false
on the first call and true
on all later calls:
allow(@verify).to receive(:sucess?).and_return(false, true)
How to integrate this into your tests depend on how you set @verify
and how your tests look like in general.