[rspec-users] Top level object in model specs

Steven Rogers srogers1 at gmail.com
Tue May 12 19:08:50 EDT 2009

On May 12, 2009, at 4:15 PM, Ben Mabey wrote:

> Steven Rogers wrote:
>> I want to stub a global method in a model spec, but I can't figure  
>> out what's the equivalent in model specs for controller.stub! in  
>> controller specs and template.stub! in view specs . . . at least,  
>> it seems like I need to do that in order to make acts_as_audited  
>> happy in models. Any thoughts?
>> Thanks,
>> Steve
> I"m not sure what you mean by global method.  Do you mean class  
> method? If so then ModelName.stub!(:class_method) should work.  If  
> you are talking about an instance method then you just need to call  
> stub! on the instance (it can be a mock object or a real object.)
> What is the exact problem you are running into though?  Mocking may  
> not be the best option....

acts_as_audited has the line (acts_as_audited/lib/acts_as_audited/ 

     controller.send :current_user if controller.respond_to? 

which blows up in my audited models. I assume there's something akin  
to "controller" in controller specs and "template" in view specs that  
makes it easy to do things like:  controller.stub! 
(:logged_in?).and_return(true)   (vs. a stub on the model itself)


More information about the rspec-users mailing list