I know that with ruby/rspec, you can do something like the following in order to receive different return values for the different calls made to the method:
allow(double).to receive(:msg).and_return(value1, value2, value3)
I've only been able to make meck stub a method with one return value like so:
meck:expect(module, some_method, fun() -> ok end)
Is there a way to make it return ok
on the first call and then ok2
on the second?
To do this, there are two shortcuts in Meck you can use:
meck:sequence/4
This function returns each element in a sequence, until the last element. Then, the last element is returned indefinitely.meck:loop/4
This function returns each element in a loop. When the last element is returned, it starts over with the first.