[rspec-devel] If you set an expectation on something that's already stubbed, should it return the stubbed value?
pergesu at gmail.com
Fri Sep 12 10:44:40 EDT 2008
Here's a pretty simple spec
describe AccountService do
@account = stub("account", :balance => 12345)
@service = AccoutnService.new
it "should check the balance" do
Ignore the fact that it's totally lame :)
Right now, in the example, @account.balance will return nil. Any
other specs that call it will get back 12345. What do you guys think
about making it return the same value by default, instead of nil? So
basically, instead of totally shadowing that method, we simply tighten
up the constraints on the mock object by adding an expectation.
- Less verbose - it expresses intent better, I think. You don't
really care what it returns in that case. Just that it gets that
method called, and everything works
- No duplication. I can't think of a single instance where I stubbed
a call, and then in my expectation I wanted it to return nil. I
*always* duplicate it
- Less verbose :) maybe some people would think it's not explicit enough?
Personally, I'm all for it. What do you guys think?
More information about the rspec-devel