On Sun, Jul 13, 2008 at 9:32 AM, Pat Maddox <[EMAIL PROTECTED]> wrote: > On Sun, Jul 13, 2008 at 9:49 AM, Sven Fuchs <[EMAIL PROTECTED]> wrote: >> I've been wondering how to expect arbitrary methods being called in a >> particular order. The RSpec documentation for expecting method calls on mock >> objects mentions that it is possible to pass a block to #should_receive, but >> does not mention that it can be used to track the method call order pretty >> easily: >> >> http://www.artweb-design.de/2008/7/13/expecting-arbitrary-method-calls-in-a-particular-order-in-rspec >> >> Is there a better way of doing this? >> >> If not, do you think it would make sense to add this to the RSpec docs? >> http://rspec.info/documentation/mocks/message_expectations.html > > Hey Sven, > > Mock objects have an optional notion of ordering. Check out the following > spec: > > describe "a mock object" do > it "should expect ordered messages" do > foo = mock("ordered mock") > foo.should_receive(:first).ordered > foo.should_receive(:second).ordered > foo.should_receive(:third).ordered > > foo.first > foo.second > foo.third > end > end > > Changing the order in which they're called will raise an > ExpectationNotMetError.
Sven, FYI - this is explained on the page you mentioned: http://rspec.info/documentation/mocks/message_expectations.html Cheers, David > > Pat > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users