"Peter Ehrenberg" <[EMAIL PROTECTED]> 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
> [email protected]
> 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
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users