> > > Do you have a before filter somewhere that is preventing the > :update_attributes message from being received? > > I have checked my application's controllers (app/controllers/application_controller.rb and app/controllers/parts_controller.rb) and controller spec (spec/controllers/parts_controller_spec.rb) and found no before filter that is preventing the :update_attributes message from being received by Parts.
Below is what my spec/controllers/parts_controller_spec.rb looks like: ------- Source code, spec/controllers/parts_controller_spec.rb starts ----------------------- require 'spec_helper' describe PartsController do let(:part){ mock_model('Part').as_null_object } before do Part.stub(:new).and_return(part) end it "creates a new part" do Part.should_receive(:new). with('title' => 'HKS boost controller'). and_return(part) post :create, :part => { 'title' => 'HKS boost controller' } end context "saves the new part object successfully" do it "sets the flash with a success message" do post :create flash[:notice].should eq('Part was successfully created.') end it "redirects the user back to the Parts index page" do post :create response.should redirect_to( :action => 'index' ) end end context "the new part object fails to save" do before do # sabotage and make the save fail part.stub(:save).and_return(false) # call the create method which will have save in its process post :create end it "assigns @part with the data from db (or a blank one if it's the first time" do assigns[:part].should eq(part) end it "renders the 'new' template again" do # test that the template, 'new' is rendered. Of course, for this # work, the part's attribute variable values must be passed to the # view for rails to successfully render the template response.should render_template('new') end end 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'} flash[:notice].should eq('Part was successfully updated.') end end end ------- Source code, spec/controllers/parts_controller_spec.rb ends ----------------------- Do you have any good tutorials which illustrate the update message which I could refer to? I've been digging but can't find anything helpful :( thanks for your help :)
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users