Just FYI, performed? Is replaced in 3.0 with a check of
self.response_body.
Sent from my iPhone
On Sep 14, 2009, at 11:46 AM, Chris Didyk <cdidyk@gmail.com> wrote:
>
> Hello,
>
> I''m curious about the performed? method in ActionController::Base.
> It''s not documented, but I''ve found it useful in a
specific testing
> scenario that I''ll describe below. How is it intended to be used
(or
> is it)? Is there a more Railsy way of doing what I''m using it for?
>
> I''m currently in the process of refactoring a large
"legacy" Rails app
> (isn''t it exciting that these now exist? It was originally
something
> like rails 0.13) that had almost zero test coverage. There are some
> kitchen sink methods in ApplicationController that perform redirects
> in certain failure scenarios. From what I can tell, it looks like the
> controllers that call this method rely on their default view rendering
> behavior to avoid DoubleRenderErrors. Before I can refactor such
> behavior out, I need to add test coverage to be sure I don''t cause
> unintended side effects.
>
> I''m using rspec and have the following inside
> application_controller_spec.rb:
>
> describe ApplicationController do
> class TestController < ApplicationController
> def method_under_test_action
> method_under_test params[:id]
> redirect_to ''/home/index'' unless performed?
> end
> end
> controller_name ''test''
> ...
>
> Without the performed? check, I get less helpful failures
> (DoubleRenderError instead of what is actually triggering the extra
> render in method_under_test). Oh, and the redirect_to
''/home/index''
> part is so that I don''t get failures for nonexistent view
templates
> via a default render call.
>
>
> Best,
> Chris
>
> >