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?? -- by(e) Andreas Wolff
Controller specs are similar to Rails functional tests, except that they don''t render views (unless you tell them to). So rather than saying: get notes_path(1,1) you want to say: get :show, :writer_id => "1", :note_id => "1" Give that a shot and let us know if it works out. Cheers, David On 9/14/07, Andreas Wolff <thinkdiv at googlemail.com> 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?? > > -- > by(e) > Andreas Wolff > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > rubyforge.org/mailman/listinfo/rspec-users >
get :show, :writer_id => "1", :note_id => "1" This may also get :show, :writer_id => "1", :id => "1" On 9/22/07, David Chelimsky <dchelimsky at gmail.com> wrote:> > Controller specs are similar to Rails functional tests, except that > they don''t render views (unless you tell them to). So rather than > saying: > > get notes_path(1,1) > > you want to say: > > get :show, :writer_id => "1", :note_id => "1" > > Give that a shot and let us know if it works out. > > Cheers, > David > > On 9/14/07, Andreas Wolff <thinkdiv at googlemail.com> 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?? > > > > -- > > by(e) > > Andreas Wolff > > _______________________________________________ > > rspec-users mailing list > > rspec-users at rubyforge.org > > rubyforge.org/mailman/listinfo/rspec-users > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > rubyforge.org/mailman/listinfo/rspec-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: rubyforge.org/pipermail/rspec-users/attachments/20070926/07229ae2/attachment.html