# How to get controller output in functional test

**URL:** <https://www.ruby-forum.com/t/how-to-get-controller-output-in-functional-test/162839>\
**Category:** Rails\
**Created:** [March 14, 2009, 12:25pm UTC](https://www.ruby-forum.com/t/how-to-get-controller-output-in-functional-test/162839 "2009-03-14T12:25:13Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Commander\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a8b319/32.png) [@Commander\_J](https://www.ruby-forum.com/u/Commander_J)\
**Post date:** [March 14, 2009, 12:25pm UTC](https://www.ruby-forum.com/t/how-to-get-controller-output-in-functional-test/162839/1 "2009-03-14T12:25:13Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Commander\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a8b319/32.png) [@Commander\_J](https://www.ruby-forum.com/u/Commander_J)\
**Post date:** [March 14, 2009, 1:46pm UTC](https://www.ruby-forum.com/t/how-to-get-controller-output-in-functional-test/162839/2 "2009-03-14T13:46:40Z")

</div>

On Mar 14, 11:24 am, Commander J. [removed\_email\_address@domain.invalid](mailto: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

---

<div class="post-metadata">

**Author:** ![Commander\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a8b319/32.png) [@Commander\_J](https://www.ruby-forum.com/u/Commander_J)\
**Post date:** [March 14, 2009, 2:30pm UTC](https://www.ruby-forum.com/t/how-to-get-controller-output-in-functional-test/162839/3 "2009-03-14T14:30:04Z")

</div>

@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. \<

---

<div class="post-metadata">

**Author:** ![Commander\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a8b319/32.png) [@Commander\_J](https://www.ruby-forum.com/u/Commander_J)\
**Post date:** [March 14, 2009, 3:36pm UTC](https://www.ruby-forum.com/t/how-to-get-controller-output-in-functional-test/162839/4 "2009-03-14T15:36:16Z")

</div>

On Mar 14, 1:29 pm, Commander J. [removed\_email\_address@domain.invalid](mailto: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

---

<div class="post-metadata">

**Author:** ![Commander\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a8b319/32.png) [@Commander\_J](https://www.ruby-forum.com/u/Commander_J)\
**Post date:** [March 14, 2009, 3:42pm UTC](https://www.ruby-forum.com/t/how-to-get-controller-output-in-functional-test/162839/5 "2009-03-14T15:42:07Z")

</div>

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. \<

---

<div class="post-metadata">

**Author:** ![Commander\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a8b319/32.png) [@Commander\_J](https://www.ruby-forum.com/u/Commander_J)\
**Post date:** [March 14, 2009, 6:21pm UTC](https://www.ruby-forum.com/t/how-to-get-controller-output-in-functional-test/162839/6 "2009-03-14T18:21:35Z")

</div>

On Mar 14, 2:41 pm, Commander J. [removed\_email\_address@domain.invalid](mailto: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

---

<div class="post-metadata">

**Author:** ![Commander\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a8b319/32.png) [@Commander\_J](https://www.ruby-forum.com/u/Commander_J)\
**Post date:** [March 15, 2009, 1:21pm UTC](https://www.ruby-forum.com/t/how-to-get-controller-output-in-functional-test/162839/7 "2009-03-15T13:21:02Z")

</div>

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. \<
