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 => 1It 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
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users