[rspec-users] stub actions that depend on the parameter

David Chelimsky dchelimsky at gmail.com
Mon Oct 8 14:23:54 EDT 2007


On 10/8/07, Borja Martín <borjam at dagi3d.net> wrote:
>
> David Chelimsky escribió:
> > On 10/8/07, Borja Martín <borjam at dagi3d.net> wrote:
> >
> >> Hi,
> >> I'm pretty new to all related to bdd and rspec and I have the following
> >> question. Is it possible to stub actions that return different objects
> >> depending on the parameteres they were called with?Something like this:
> >>
> >> MyClass.stub!(:method).with(1).and_return(@mock_object_1)
> >> MyClass.stub!(:method).with(2).and_return(@mock_object_2)
> >>
> >
> > What happened when you tried this?
> >
> >
> I become an error like this:
> ...
> undefined method `with' for #<Spec::Mocks::MethodStub:0xb6f20858>

OK - that makes sense - you're probably using the latest release
rather than the trunk. The trunk has been modified to support what
you're trying to do.

In the mean time, you could use should_receive to get the same effect.
It won't care about order, but it will care that the message is
received at one point.

That help?

> >> I know I could use MyClass.stub!(:method).and_return(@mock_object_1,
> >> @mock_object_2) so the first time the :method method is called, it would
> >> return the first object and then the second one, but the problem is that
> >> I cannot guarantee the order it will be called inside the model.
> >>
> >> Thanks in advance
> >>
> >> --
> >> /**
> >>  * dagi3d v4 | http://dagi3d.net
> >>  */
> >>
> >> _______________________________________________
> >> rspec-users mailing list
> >> rspec-users at rubyforge.org
> >> http://rubyforge.org/mailman/listinfo/rspec-users
> >>
> >>
> > _______________________________________________
> > rspec-users mailing list
> > rspec-users at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rspec-users
> >
>
>
> --
> /**
>  * dagi3d v4 | http://dagi3d.net
>  */
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list