On Apr 2, 2011, at 8:20 AM, Kai Schlamp wrote:

> I use RSpec mock and stub like this:
> 
> hit = mock("hit", :stored => 5)
> 
> This works fine, but when using this instead:
> 
> hit = mock("hit").stub(:stored) { 5 }
> 
> then I get
> 
> undefined method `stored' for #<RSpec::Mocks::MessageExpectation:
> 0xb688bb78>
> 
> I always thought both were equivalent. Can someone enlighten me?

This error message tells you the problem: the `stub` method in the second 
example returns an instance of RSpec::Mocks::MessageExpectation, not the double 
itself. If you did it this way, you'd get what you were looking for:

hit = mock('hit')
hit.stub(:stored) { 5 }
hit.stored.should eq(5)

Make sense?

David

> Regards,
> Kai

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to