On Fri, Mar 6, 2009 at 3:05 AM, Matt Wynne <m...@mattwynne.net> wrote: > > On 5 Mar 2009, at 15:24, Ben Mabey wrote: > >> David Chelimsky wrote: >>> >>> On Thu, Mar 5, 2009 at 3:31 AM, Matt Wynne <m...@mattwynne.net> wrote: >>> Maybe we should make this easier by providing some facility in the >>> mock framework to express the following in one statement: >>> >>> @authenticator = stub('authenticator') >>> Authenticator.stub!(:new).and_return(@authenticator) >>> >>> Sure, you could make that a one liner: >>> >>> Authenticator.stub!(:new).and_return(@authenticator = >>> stub('authenticator') >>> >>> But I mean something like: >>> >>> @authenticator = Authenticator.stub! >>> >>> I don't think *that* is the answer - but something that concise would be >>> nice. >>> >>> Thoughts? >>> >>> David >>> >>> >> I like the conciseness, but it isn't very clear what it is doing IMO. >> Perhaps something a little more intention-revealing like: >> >> @authenticator = Authenticator.stub_new! > > I think I must mostly use constructor injection, as I don't really seem to > have a pattern for this, but if I did I guess it would be something like > this: > > extend StubbingHelpers > > describe "blah" > before(:each) do > �...@authenticator = mock_new_authenticator( :foo => bar ) > > which is implemented like > > def stub_new_authenticator( *args ) > result = mock(Authenticator, *args) > Authenticator.stub!(:new).and_return(result) > result > end > > I guess having something like that would be nice.
This is how I do it, Zach > > > Matt Wynne > http://blog.mattwynne.net > http://www.songkick.com > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > -- Zach Dennis http://www.continuousthinking.com http://www.mutuallyhuman.com _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users