[mocha-developer] Expecting calls with two different parameters
Bryan Helmkamp
bhelmkamp at gmail.com
Sun Oct 8 16:31:13 EDT 2006
Thanks, Kevin and James. The key is instead of writing the mock like this:
foo.expects(:bar)
foo.expects(:bar).with("something")
You have to write it like this:
foo.expects(:bar).with()
foo.expects(:bar).with("something")
The first example won't work. If you don't want to specify the
paramaters passed in one of the method calls, you can do:
foo.expects(:bar).times(2)
foo.expects(:bar).with("something")
And that works too.
Thanks,
-Bryan
On 10/7/06, James Mead <jamesmead44 at gmail.com> wrote:
> On 10/6/06, Bryan Helmkamp <bhelmkamp at gmail.com> wrote:
> > How would I setup a mock that expects that a method will be called
> > once with no paramaters, and a second time with a parameter? I'd be
> > tempted to shortcut and just do something like
> > foo.expects(:bar).times(2), but the value used as the parameter when
> > calling it the second time is very important.
>
> You shoud be able to do the following...
>
> def test_me
> object = mock()
> object.expects(:expected_method).with(:important_value)
> object.expects(:expected_method)
>
> object.expected_method(:important_value)
> object.expected_method(:another_value)
> end
>
> Is that what you mean? Calling expects() without a call to with() matches a
> call to the method with any parameters.
> --
> James.
> http://blog.floehopper.org
> _______________________________________________
> mocha-developer mailing list
> mocha-developer at rubyforge.org
> http://rubyforge.org/mailman/listinfo/mocha-developer
>
>
--
http://www.MyCongress.org/ -- coming soon
More information about the mocha-developer
mailing list