On Sat, Feb 20, 2010 at 5:27 PM, Frank Lakatos <[email protected]> wrote: > me.stub(:sum) {|a,b| a + b} = really slick trick!
It's an easy way to do a Fake (http://xunitpatterns.com/Fake%20Object.html), at the method level (all of those patterns are really method level patters, not object level patterns). Another use is for expectations: foo.should_receive(:bar) do |a, b| a.should be_x b.should be_y end > > > On Feb 20, 2010, at 6:22 PM, David Chelimsky wrote: > >> On Sat, Feb 20, 2010 at 4:09 PM, Matt Wynne <[email protected]> wrote: >>> >>> I keep wanting to do this, and I don't think it's possible so I thought >>> I'd >>> suggest it. Similarly to the way I can specify stub values as hash >>> key/value >>> pairs when constructing a test double, I'd like to be able to the same >>> when >>> subsequently calling stub on that double: >>> >>> me.stub(:name => 'Matt') >>> >>> That's as opposed to >>> >>> me.stub(:name).and_return('Matt') >>> >>> Thoughts? >> >> Have you tried it? It already works. You can do this, in fact: >> >> me.stub(:name => 'David', :predictor_of_matts_future_requests => true) >> >> Also, try this one: >> >> me.stub(:name) { 'Matt' } >> >> That's actually my preference, because it gives you access to args: >> >> me.stub(:sum) {|a,b| a + b} >> me.sum(3,4) >> => 7 >> >> HTH, >> David >> _______________________________________________ >> 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 > _______________________________________________ rspec-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/rspec-users
