...

/

More Expectation Annotations

More Expectation Annotations

Let's learn about stub methods, testing with mock objects, and mock object arguments.

RSpec allows several different annotations to the expectation part of declaring a test double. We can specify more complex return values or a variety of arguments to the stubbed method.

Stubbing return values

A couple of advanced usages of returns may be valuable now and again. If we have multiple return values specified, the stubbed method returns one at a time (spec added on line 21):

Bud1�lsdsclboolmodelsdsclbool @� @� @� @E�DSDB `� @� @� @
Adding multiple stubs spec in task_spec.rb file

The return values of the stubbed method walk through the values passed to and_return. Note that the values don’t cycle. The last value is repeated over and over again.

Stubbed method

RSpec can do a couple of other useful things with return values. If the method being stubbed takes a block and we want to cause the stubbed method to yield a particular set of arguments to the block, we can do so with and_yield:

`allow(project).to
...