Spec rendering xml.erb suspectly doen't work


#1

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


#2

“Peter Ehrenberg” removed_email_address@domain.invalid writes:

The “index.xml.erb” template includes (for now) only the string “XML”.
response.body.should == “XML”
I’ve done some puts-debugging like this


rspec-users mailing list
removed_email_address@domain.invalid
http://rubyforge.org/mailman/listinfo/rspec-users

By 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


#3

By default, controller specs don’t actually render the views.

Ah. Ok thanks.

/Peter