How to get controller output in functional test


#1

Hi,

How do you get the rendered output (sent to the browser) in a controller
functional test?

I searched for this, and tried things like

@content_for_layout
@response.template.content_for_layout
yield
yield :layout

CmdJohnson


#2

On Mar 14, 11:24 am, Commander J. removed_email_address@domain.invalid
wrote:

Hi,

How do you get the rendered output (sent to the browser) in a controller
functional test?

Have a look at @response.body

Fred


#3

@response.body is an empty string!
With the debugger, I can find @response.template.content_for_layout but
that’s not accessible with a method call.

This is the controller code:

respond_to do |format|
format.html
end

On Sat, Mar 14, 2009 at 1:45 PM, Frederick C. <


#4

On Mar 14, 1:29 pm, Commander J. removed_email_address@domain.invalid
wrote:

@response.body is an empty string!

Are you checking this after the call to the controller has been made ?

Fred


#5

Yes, like this:
get :reload

puts “@response.body: [#{@response.body}]”

Results in:

@response.body: []

On Sat, Mar 14, 2009 at 3:35 PM, Frederick C. <


#6

On Mar 14, 2:41 pm, Commander J. removed_email_address@domain.invalid
wrote:

Yes, like this:
get :reload

puts “@response.body: [#removed_email_address@domain.invalid}]”

Results in:

@response.body: []

To me that sounds like the response is actually empty.

Fred


#7

I found the problem. Goldberg is used to generate the page title, but
generated an error in test mode. A quick fix was to return an empty
layout
in test mode.
On Sat, Mar 14, 2009 at 6:20 PM, Frederick C. <