レール3.1.4のアプリケーションでは、rspec
を使用してアプリケーションコントローラのパブリックメソッドrequire_signin
をテストします。ここでは、メソッドrequire_signinは次のとおりです。ここでRunTimeError:rspecのActionController :: RackDelegation 2.10.1のレール3.1.4のアプリケーションコントローラ
def require_signin
if !signed_in?
flash.now.alert = "Log in first!"
redirect_to signin_path
end
end
はrspec
コードは次のとおりです。
it "should invoke require_signin for those without login" do
controller.send(:require_signin)
controller {should redirect_to signin_path}
end
上記rspec
は巨大なマルチページは以下のように起動エラー発生:
RuntimeError:←[0m
←[31mActionController::RackDelegation#status= delegated to @_response.status=, but @_response is nil: #<ApplicationController:0x3
a67f10 @_routes=nil, @_action_has_layout=true, @_view_context_class=nil, @_headers={"Content-Type"=>"text/html"}, @_status=200, @_reques
t=#<ActionController::TestRequest:0x3a68720 @env={"rack.version"=>[1, 1], "rack.input"=>#<StringIO:0x34fad60>, ........
間違っている可能性がどのようなrspec
コードを使用していますか?本当にありがとう。
よう
send
呼び出しの前should_receive
を使用する必要がありますしてください。私もこの答えが必要です – tekknolagi