Peter Ehrenberg
2008-Nov-25 16:09 UTC
[rspec-users] Spec rendering xml.erb suspectly doen''t work
I have to spec an contoller action witch is (only) rendering an xml.erb template. The action looks like this: def index respond_to do |format| format.xml end end The "index.xml.erb" template includes (for now) only the string "XML". This works fine if I requests the action with curl -H "ACCEPT: text/xml" ... It also running fine, if I write a conventional rails functional test. But specing this, it render nothing but a single blank. describe PostsController do it "should render xml" do request.env["HTTP_ACCEPT"] = "application/xml" get :index response.body.should == "XML" end end $ spec spec 1) ''PostsController should render xml'' FAILED expected: "XML", got: " " (using ==) /home/petehr/Project/test/spec/controllers/posts_controller_spec.rb:7: I''ve done some puts-debugging like this format.xml { puts ">>>#{render_to_string}<<<" } in the actions respond_to block. Running the curl command or the functional test shows the expected result ">>>XML<<<". But runing the spec again shows only a blank: ''>>> <<<''. Any hints? /Peter
Pat Maddox
2008-Nov-25 16:23 UTC
[rspec-users] Spec rendering xml.erb suspectly doen''t work
"Peter Ehrenberg" <pe at dipe.de> writes:> I have to spec an contoller action witch is (only) rendering an > xml.erb template. > The action looks like this: > > def index > respond_to do |format| > format.xml > end > end > > The "index.xml.erb" template includes (for now) only the string "XML". > > This works fine if I requests the action with curl -H "ACCEPT: text/xml" ... > It also running fine, if I write a conventional rails functional test. > > But specing this, it render nothing but a single blank. > > describe PostsController do > it "should render xml" do > request.env["HTTP_ACCEPT"] = "application/xml" > get :index > response.body.should == "XML" > end > end > > $ spec spec > 1) > ''PostsController should render xml'' FAILED > expected: "XML", > got: " " (using ==) > /home/petehr/Project/test/spec/controllers/posts_controller_spec.rb:7: > > I''ve done some puts-debugging like this > > format.xml { puts ">>>#{render_to_string}<<<" } > > in the actions respond_to block. Running the curl command or the functional > test shows the expected result ">>>XML<<<". But runing the spec again > shows only a blank: ''>>> <<<''. > > Any hints? > > /Peter > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-usersBy default, controller specs don''t actually render the views. You need to call integrate_views from within your example group to make them render. Pat