[rspec-users] Stub an instance method for every new instance of a class

Glenn Ford glenn at aldenta.com
Tue Apr 1 08:21:42 EDT 2008


I think the general consensus is that if you need this feature, then  
you have ugly code that needs cleaning up :)  If you're in a situation  
like me, where you're too noob to figure out a better solution for  
some legacy code that you inherited, go to this url and find the  
instructions for installing Mocha:

http://wiki.rubyonrails.org/rails/pages/Testing+Plugins

With it you can do:
ModelName.any_instance.stubs(:the_method).returns(happy_times)

However, I strongly encourage you to stare at your current code for a  
while and try to find a cleaner MVC-supportive solution.  The general  
rule of thumb is that if it's difficult to write a spec for, then your  
code is ugly :)  Hopefully in this case you can take this as an  
opportunity to improve your code.  If not, Mocha works fairly well!

Glenn

On Apr 1, 2008, at 3:50 AM, Ashley Moran wrote:

> On 01/04/2008, Jed Hurt <jed.hurt at gmail.com> wrote:
> Is there an easy way to stub an instance method for every new  
> instance of a given class? I suppose I could just redefine the  
> method, but I'm wondering if the RSpec mocking framework has this  
> built in.
>
> Hi Jed
>
> I hate it when other people ask this, but I can't help :)  How come  
> you need to do this?  I've always wondered what the use case for  
> this "mocking" strategy is
>
> Ashley
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20080401/d65e1f0f/attachment.html 


More information about the rspec-users mailing list