[rspec-users] lots of nil problems!

Phillip Koebbe phillipkoebbe at gmail.com
Sat Mar 20 07:13:52 EDT 2010


> There is an alternate syntax that I'm using nearly exclusively at this
> point, which is to pass a block along with the stub() and
> should_receive() messages:
>
>    foo.stub(:bar) { "return value" }
>    foo.stub(:bar) { raise SomeError }
>    foo.stub(:bar) { yield "value" }
>    foo.stub(:bar) { throw :value }
>    foo.should_receive(:bar) { "return value" }
>    foo.should_receive(:bar) { raise SomeError }
>    foo.should_receive(:bar) { yield "value" }
>    foo.should_receive(:bar) { throw :value }
>
> As you can see, there is much less API to worry about here. You're
> just supplying an implementation.
>
> This approach also works with scoped arguments:
>
>    input = Input.new
>    calculator = Calculator.new(input)
>    calculator.should_receive(:add).with(1,2) { 3 }
>    input.type("1", "+", "2", "Enter")
>
> I've been thinking of deprecating the and_xxx methods in rspec-2. Does
> anybody think that's an awful idea?
>    

It may be because my RSpec-fu is relatively immature, but I like 
and_return and friends. It makes sense to my brain. Admittedly, I have 
not used the other syntax yet, so I really should give it a go and see 
what I think. At the present moment, I would be very disappointed if the 
and_ methods went away.

-1

Peace,
Phillip



More information about the rspec-users mailing list