I'm trying to write a spec for a really long time.
I need to test this:
expect(Foo).to receive(:bar).with(some_args)
and everything works just fine if Foo
receives bar
only once. But it will receive bar
several times for sure so that the string above fails with
#<Foo (class)> received :bar with unexpected arguments
on those calls.
How can I test that Foo
receives bar
with the exact arguments I need and ignore other cases?
What about using
allow(Foo).to receive(:bar).and_call_original
?For example, these tests will successfully pass:
If you add
expect(a).to receive(:boo).with(4)
to the block, the test will fail. It seems like what you're looking for, right?