On Aug 23, 2011, at 7:22 AM, Gordon Yeong wrote: > I found out why it was not working. > > The line, 'Part.should_receive(:update_attributes).with('title' => 'Brake > pads').and_return(part)' should not be there because the controller specs > should not care about implementation (ie. how things are processed, rather > just what is done). I realised this when I looked at my specs for creation > of new objects. > > I commented the line and the spec now passes as expected. > > > ------------ Spec extract starts ------------------------- > > context 'saves updates to an existing part object successfully' do > it 'does its job in saving the update' do > Part.should_receive(:find).with(1).and_return(part) > # Part.should_receive(:update_attributes).with('title' => 'Brake > pads').and_return(part)
^^ Change the class name Part to the variable part ^^: part.should_receive(:update_attributes).with('title' => 'Brake pads').and_return(part) It's the part object, not the Part class that will receive update_attributes. HTH, David > put :update, :id => 1, :part => {'title' => 'Brake pads'} > flash[:notice].should eq('Part was successfully updated.') > end > end > > ------------ Spec extract ends ------------------------- > > Thank you for your help, Justin! > > Gordon Yeong :) > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users Cheers, David
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users