[rspec-users] Route is valid but not found :(
Justin Ko
jko170 at gmail.com
Tue Aug 23 07:54:59 EDT 2011
Sent from my iPhone
On Aug 22, 2011, at 10:14 PM, ct9a <anexiole at gmail.com> wrote:
>
>
> On Aug 23, 1:55 pm, Justin Ko <jko... at gmail.com> wrote:
>> On Mon, Aug 22, 2011 at 9:09 PM, ct9a <anexi... at 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 at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
More information about the rspec-users
mailing list