I''m loving ActionView::TestCase and it''s time to give back a bit... ActionView::TestCase creates a view with a nil output buffer -probably assuming that all rendering simply returns a string. However, rendering a layout does not return a string -instead #_render_with_layout concatenates the result of rendering the layout as a partial onto the view''s output buffer. Because the view''s output buffer is nil, an exception is raised for invoking append (<<) on nil. Which component is breaking the rules? Is is the TestCase, which neglects to provide an output buffer for the view? Or is it ActionView::Base#render_with_layout that doesn''t follow convention and simply return a string? Fixing TestCase is easy. Fixing render_with_layout will be (much) harder. A simple work-around is to provide the view with an output buffer. Arguably, this is the Right Thing To Do (TM) regardless. It would appear that without it testing concat in a rendering helper is broken. This behavior is observed in 2-3-stable. I think AV::TC has been rewritten for 3.0/master so I can''t comment on those branches. Other (indirect) references to this problem: * http://groups.google.com/group/haml/browse_thread/thread/c108c393a5... To be pragmatic, I''ve created a one-line patch that links the test case''s output buffer to the view''s output buffer. It applies cleanly to 2-3-stable. It includes a failing test. All action pack tests pass with the patch. Looking for testers... https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3467