作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在我们的 rails 3.1.4 应用程序中,rspec
用于测试应用程序 Controller 中的公共(public)方法 require_signin
。这是 require_signin 方法:
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
代码有什么问题?非常感谢。
最佳答案
我遇到了这个错误并意识到我正在通过调用我想测试的辅助方法在 Controller 上触发重定向,但我还没有实际实例化测试请求。在调用期望之前调用 get :index
消除了错误。
it "redirects if some condition" do
subject.send(:helper_method)
get :action # <= Need this before setting expectation below
response.should redirect_to("/somewhere")
end
关于ruby-on-rails - RunTimeError:Rspec 2.10.1 中的 ActionController::RackDelegation for rails 3.1.4 应用程序 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10989461/
在我们的 rails 3.1.4 应用程序中,rspec 用于测试应用程序 Controller 中的公共(public)方法 require_signin。这是 require_signin 方法:
我是一名优秀的程序员,十分优秀!