stub!
![Moderate documentation Importance_2](https://d2vfyqvduarcvs.cloudfront.net/images/importance_2.png?1349367920)
![Default_avatar_30](https://www.gravatar.com/avatar/f80c5168b92fe9d49b0668cde3bdd57c?default=http://apidock.com/images/default_avatar_30.png&size=30)
stub/stub! will always be followed by '.and_return'
this function will aways be followed by ‘.and_return(…)’ because a stub is typically used for returning values. The required argument given to stub is a method name. When a message to this stubbed method name is received by a class or existing object of the class AND ‘.and_return’ is provided, the stub will return whatever was provided as argument to ‘.and_return’.
For example,
HomeLoan.stub!(interest_rate).and_return(‘5.5%’)
-
this will return 5.5% when a message for interest_rate in a HomeLoan class’s object is received.
HomeLoan.stub!(interest_rate).and_return(‘5.5%’, ‘3%’)
-
this will return 5.5% when a message for interest_rate in a HomeLoan class’s object is received FOR THE FIRST TIME but will return 3% for subsequent calls/messages.
![Default_avatar_30](https://www.gravatar.com/avatar/40e75e91ba81120383c7223690e9bcc0?default=http://apidock.com/images/default_avatar_30.png&size=30)
![Default_avatar_30](https://www.gravatar.com/avatar/dc0c13189cad0b78bcc4e441329ea03d?default=http://apidock.com/images/default_avatar_30.png&size=30)
A stub with argument and return value
it “should use a dummy method with argument and return value” do
dummy = mock("dummy").stub!(:emulate) dummy.should_receive(:emulate).with(:something).and_return("Done! sir!") dummy.emulate(:something).should == "Done! sir!" end