[rspec-users] Asserting on a yield

David Chelimsky dchelimsky at gmail.com
Wed Mar 7 18:16:17 UTC 2012


On Wed, Mar 7, 2012 at 11:56 AM, Matt Wynne <matt at mattwynne.net> wrote:
>
> 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.

thing.do_stuff(&:self) would be a bit less arbitrary :)

>
> 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
>
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users


More information about the rspec-users mailing list