More Expectation Annotations

RSpec allows a number of different annotations to the expectation part of declaring a test double. You 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 might be valuable now and again. If you have multiple return values specified, the stubbed method returns them one at a time:

mocks/01/gatherer/spec/models/project_spec.rb
​ 
it ​"stubs with multiple returns"​ ​do​
​ 
project = Project.new
​ 
allow(project).to receive(:user_count).and_return(1, 2)
​ 
assert_equal(1, project.user_count)
​ 
assert_equal(2, project.user_count)
​ 
assert_equal(2, project.user_count)
​ 
​end​

The return values of ...

Get Rails 4 Test Prescriptions now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.