On Thu, May 6, 2010 at 5:02 AM, ben rooney <ben.roone...@googlemail.com> wrote: > Slightly flummoxed on this one. > > Spec::Mocks::MockExpectationError in 'ChartEventsController handling > GET /chart_events should find all chart_events given a value' > expected: ([:all, {:conditions=>["value LIKE ?", "%chart_event%"]}]) > got: ([:all, {:conditions=>["value LIKE ?", "%chart_event%"]}]) > > In other words it got exactly what it expected, but, er, failed? > > Controller: > if params[:q] > �...@chart_events = ChartEvent.find(:all, :conditions =>['value LIKE > ?', "%#{(params[:q])}%"]) > else > �...@chart_events = ChartEvent.all(:order=>'value') > end > > > controller_spec > before do > �...@chart_event = mock_model(ChartEvent, :value => "chart_event") > ChartEvent.stub!(:find).and_return([...@chart_event]) > end > > it "should find all chart_events given a value" do > ChartEvent.should_receive(:find).with([:all, {:conditions=>["value > LIKE ?", "%...@chart_event.value}%"]}]).and_return([...@chart_event]) > get :index, :q => @chart_event.value > end
I think you want ChartEvent.should_receive(:find).with(:all, {:conditions=>["value LIKE ?", "%...@chart_event.value}%"]})... The output from the message expectation failure is a bit confusing, but the argument list to the with method should look like the argument list to the expected method. The expectation here is that find should get one argument, an array with a symbol and a hash, rather than two parameters, a symbol and a hash. It would be better if the failure were reported like this: expected: ([:all, {:conditions=>["value LIKE ?", "%chart_event%"]}]) got: (:all, {:conditions=>["value LIKE ?", "%chart_event%"]}) -- Rick DeNatale Blog: http://talklikeaduck.denhaven2.com/ Github: http://github.com/rubyredrick Twitter: @RickDeNatale WWR: http://www.workingwithrails.com/person/9021-rick-denatale LinkedIn: http://www.linkedin.com/in/rickdenatale _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users