On 14.9.2007, at 12.02, Andreas Wolff wrote:

Hey everyone.
I really stuck on testing a nested controller. I'm trying to make a
request using get and afterwards checking the response by
response.should ...

My routes.rb looks like this:

map.resources :writers do |writers|
 writers.resources :notes
end


In my notes_controller_spec.rb

def do_get
 writer_id = 1
 note_id = 1
 get note_path(writer_id, note_id)
end

it "should show a note" do
 do_get
 response.should be_success
end


But this always ends in an error message:
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.rewrite

Can anybody help here??

You shouldn't test the routing stack in controller tests. Just say

get :show, :id => 1, :writer_id => 1

It will automatically use the correct controller, given that you have either used "describe NotesController" or use the controller helper to identify the controller. I think the former way is now considered best practice.

If you want to test routes, do it separately. IIRC generating an rspec_scaffold will create you examples of how to do that.

//jarkko

--
Jarkko Laine
http://jlaine.net
http://dotherightthing.com
http://www.railsecommerce.com
http://odesign.fi


Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to