Sent from my iPhone
On Aug 22, 2011, at 10:14 PM, ct9a <anexi...@gmail.com> wrote: > > > On Aug 23, 1:55 pm, Justin Ko <jko...@gmail.com> wrote: >> On Mon, Aug 22, 2011 at 9:09 PM, ct9a <anexi...@gmail.com> wrote: >> >>> Thanks, Justin. >> >>> I have the part object mocked up before each spec runs. >> >>> ------- Extract begins ----------------- >> >>> let(:part){ >>> mock_model('Part').as_null_object >>> } >> >>> before do >>> Part.stub(:new).and_return(part) >>> end >> >>> ------- Extract ends ----------------- >> >>> With that in mind, I just made changes to my spec as below: >> >>> ------- Extract begins ----------------- >> >>> it 'saves updates to an existing part object successfully' do >>> Part.should_receive(:find).with(1).and_return(part) >>> Part.should_receive(:update).with( 'title' => >>> 'Grimspeed' ).and_return(part) >> >> Should be: >> >> Part.should_receive(:update_attributes).with('title' => >> 'Grimspeed').and_return(part) >> >> No where do you call `update` on Part. > > Yes, I have done that and the spec looks like below. > > ------------------ Spec extract begins > ------------------------------------------ > 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) > put :update, :id => 1, :part => {'title' => 'Brake pads'} > end > end > ------------------ Spec extract ends > ------------------------------------------ > > Alas, it's still giving out an error indicating the update_attributes > message is never called. > I've already got a put request to the 'update' method with an id and > the part hash parameter > and yet it looks like 'update' is not called (which in will call > update_attributes in it). > > ----------------- Error extract starts > ------------------------------------------------- > > 1) PartsController saves updates to an existing part object > successfully does its job in saving the update > Failure/Error: > Part.should_receive(:update_attributes).with('title' => 'Brake > pads').and_return(part) > (<Part(id: integer, title: string, description: text, > created_by: string, updated_by: string, created_at: datetime, > updated_at: datetime) (class)>).update_attributes({"title"=>"Brake > pads"}) > expected: 1 time > received: 0 times > # ./spec/controllers/parts_controller_spec.rb:54 > > Finished in 0.25483 seconds > 8 examples, 1 failure, 1 pending > > ----------------- Error extract end > ------------------------------------------------- > > Hmm.... What is missing? Do you have a before filter somewhere that is preventing the :update_attributes message from being received? > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users