[rspec-users] newbie: how to preserve NoMethodError under stubbing?

Wincent Colaiuta win at wincent.com
Sat Jul 24 05:35:56 EDT 2010


El 24/07/2010, a las 08:26, David Chelimsky escribió:

> On Fri, Jul 23, 2010 at 6:46 PM, Lille <lille.penguini at gmail.com> wrote:
>> Hi,
>> 
>> I've been browsing the RSpec book and the RDoc, but I can't see how to
>> ensure the following:
>> 
>> Stub an instance with a method it doesn't have and raise NoMethodError
>> (or something like it.)
> 
> RSpec doesn't support anything like that. I'm not sure if any of the
> Ruby frameworks do, though I've been involved with conversations about
> this sort of thing before.

I'm not sure if I understand the request, but with RR you can do this:

>> require 'rr'
=> true
>> extend RR::Adapters::RRMethods
=> main
>> foo = Object.new
=> #<Object:0x101664bd8>
>> stub(foo).bar { raise NoMethodError }
=> #<RR::DoubleDefinitions::DoubleDefinition:0x10165ce60>
>> foo.bar
NoMethodError: NoMethodError

Although like I said, not sure if I understood Lille's request.

Cheers,
Wincent





More information about the rspec-users mailing list