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