[rspec-users] Asserting on a yield

Matt Wynne matt at mattwynne.net
Wed Mar 7 17:56:30 UTC 2012


On 7 Mar 2012, at 11:39, Morten Møller Riis wrote:

> On Mar 7, 2012, at 8:22 AM, Matt Wynne wrote:
> 
>> Hi all,
>> 
>> I'm spec'ing a method that yields a value. Right now, I spec it like this:
>> 
>>     result = nil
>>     thing.do_stuff { |value| result = value }
>>     result.should == expected
>> 
>> This feels like too much ceremony. What I want to do is something more this:
>> 
>>    thing.do_stuff.should yield_value(expected)
>> 
>> Is there anything built into RSpec to let me do this? If not, how do other people test yields?
>> 
>> cheers,
>> Matt

> How about this?
> 
> thing.do_stuff(&:to_s).should == expected

Yes, that's a neat hack, but I'd prefer to be able to assert on the actual yielded value, instead of the result of calling an arbitrary method on it.

Doesn't anyone else do this?

cheers,
Matt

--
Freelance programmer & coach
Author, http://pragprog.com/book/hwcuc/the-cucumber-book
Founder, http://www.relishapp.com/
Twitter, https://twitter.com/mattwynne


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20120307/9b2fa1d5/attachment.html>


More information about the rspec-users mailing list