[mocha-developer] Mocking to spec a sort_by method

Zach Moazeni zach.lists at gmail.com
Wed Sep 5 17:40:46 EDT 2007


I think you're meaning to do

vehical1.stubs(:[]).with(;mph).returns(150)
vehical2.stubs(:[]).with(;mph).returns(250)

Or in your prod code write vehicle.send(:mph) instead of vehical[symb]

Also in your test you should probably be doing comparer.add_vehical 
([vehical1, vehical2]) instead of @vehical1, @vehical2

Hope that helps.

-Zach

On Sep 5, 2007, at 5:04 PM, Chris Lowis wrote:

> Hello,
>
> I have a question regarding the use of Mocha with rSpec to spec one of
> my methods.
>
> My spec contains the following
>
> vehical1 = mock()
> vehical2 = mock()
> vehical1.stubs(:mph).returns(150)
> vehical2.stubs(:mph).returns(250)
> comparer.add_vehical([@vehical1, @vehical2])
> comparer.sort_by(:mph)
>
> The comparer is an object that has a basic "stack like" functionality,
> add_vehical is the method to add objects to the stack.
>
> My sort_by method in the comparer class looks like
>
> def sort_by(symb)
>     @vehicals.sort_by{|vehical| vehical[symb] }
> end
>
> where @vehicals is an instance variable array (the stack).
>
> Running my spec gives the following error,
>
> Mocha::ExpectationError in 'Comparer should be sortable on a  
> specific symbol'
> #<Mock:0x251b7c8>.[](:mph) - expected calls: 0, actual calls: 1
>
> I assume sort_by is trying to call a [] method ? How do I stub this
> method correctly using Mocha ?
>
> Thank you for any help,
>
> Chris
>
>
>
>
>
>
>
>
>
> -- 
> Chris Lowis
> http://www.chrislowis.co.uk/
> _______________________________________________
> mocha-developer mailing list
> mocha-developer at rubyforge.org
> http://rubyforge.org/mailman/listinfo/mocha-developer



More information about the mocha-developer mailing list