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