On 14 Oct 2007, at 08:28, Mikel Lindsaar wrote: > On 8/13/07, rupert <[EMAIL PROTECTED]> wrote: >> On 12 Aug 2007, at 14:38, David Chelimsky wrote: >>>> However, what I actually need to do is check each result that is >>>> yielded by the Connector.each_result method and compare it to the >>>> previous one. If they are sufficiently similar I need to merge >>>> them >>> >>> I'm pretty sure you can get what you want by using should_receive >>> instead of stub and doing this: >>> >>> Connector.should_receive(:results).and_yield(@result1) >>> Connector.should_receive(:results).and_yield(@result2) > > David, I am having the same mind meld here as Rupert. > > I am trying to stub out Net::POP3 which yeilds a block for each > message returns. The code (snipped down) that I am trying to mock out > is: > > Net::POP3.delete_all(@server, @port, @username, @password) do |m| > # do stuff with mail > end > > > Doing > > Net::POP3.should_receive(:delete_all).and_yield(@message1) > > Works fine. > > Net::POP3.should_receive(:delete_all).and_yield(@message1) > Net::POP3.should_receive(:delete_all).and_yield(@message2) > > Gives: > > 1) > Spec::Mocks::MockExpectationError in 'GetMail downloading email should > download some mail' > Mock 'Class' expected :delete_all with (any args) once, but > received it 0 times > ./spec/getmai_spec.rb:86: > > > It is almost like the second mock overrides the first mock ability to > intercept the call. > > Stubbing it does the expected behaviour of overwriting the last > stub, ie: > > Net::POP3.stub!(:delete_all).and_yield(@message1) > Net::POP3.stub!(:delete_all).and_yield(@message2) > > Returns no error, but the block is only called once, not twice. > > Any further musings on this?
Yep - a patch was assimilated so you should be able to do: Net::POP3.should_receive(:delete_all).and_yield(@message1).and_yield (@message2) which should allow you to call delete_all once and have it yield twice. This is definitely in trunk Cheers Rupert _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users