On Wed, Mar 7, 2012 at 2:32 PM, Matt Wynne <matt at mattwynne.net> wrote:
>> On 7 Mar 2012, at 18:16, David Chelimsky wrote:
>> 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 :)
>>> It would, but does it work?
>> I assumed it would too but here on my Ruby 1.9.2 it gives me a NoMethodError :(
I had assumed as well, and you know what they say about ASSuming!