http://atomicobjectrb.rubyforge.org/injection/

Zach

On Fri, Mar 28, 2008 at 2:17 PM, aslak hellesoy
<[EMAIL PROTECTED]> wrote:
>
> On Fri, Mar 28, 2008 at 8:12 PM, Pat Maddox <[EMAIL PROTECTED]> wrote:
>  > On Fri, Mar 28, 2008 at 11:32 AM, Luis Lavena <[EMAIL PROTECTED]> wrote:
>  >  > On Fri, Mar 28, 2008 at 3:25 PM, David Beckwith <[EMAIL PROTECTED]> 
> wrote:
>  >  >  > Hi,
>  >  >  >
>  >  >  >  How can I mock the "go" method of class B so that it returns the
>  >  >  >  string "fudge" in this situation?
>  >  >  >
>  >  >  >  class A
>  >  >  >  private
>  >  >  >   def start
>  >  >  >     @b = B.new
>  >  >  >   end
>  >  >  >  end
>  >  >  >
>  >  >  >  class B
>  >  >  >   def go
>  >  >  >     puts "This is fun."
>  >  >  >   end
>  >  >  >  end
>  >  >  >
>  >  >
>  >  >  What about:
>  >  >
>  >  >  mock_b = mock(B)
>  >  >  mock_b.stub!(:go).and_return(true)
>  >  >
>  >  >  B.stub!(:new).and_return(mock_b)
>  >  >
>  >  >  Something like that?
>  >
>  >  Stubbing the #new method on the class is one way to do it, as Luis 
> mentioned.
>  >
>  >  Another approach is to pass the object in through the constructor.
>  >  Doing so will help you achieve looser coupling between the classes.
>  >
>
>  AKA Dependency Injection (http://martinfowler.com/articles/injection.html)
>
>  Aslak
>
>
>
>  >  Pat
>  >
>  >
>  > _______________________________________________
>  >  rspec-users mailing list
>  >  [email protected]
>  >  http://rubyforge.org/mailman/listinfo/rspec-users
>  >
>  _______________________________________________
>  rspec-users mailing list
>  [email protected]
>  http://rubyforge.org/mailman/listinfo/rspec-users
>



-- 
Zach Dennis
http://www.continuousthinking.com
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to