我在测试 Controller 和使用Warden时遇到问题。
所有示例都指向 stub request.env['warden']
。当我调用env['warden']
时,这会导致 Controller 出现问题,然后返回nil
。
举一个简单的例子,使用这个:
request.env['warden'] = double(Warden, :authenticate => nil,
:authenticate! => nil,
:authenticated? => false)
和一个简单的before过滤器是这样的:
before_filter do
redirect_to new_user_session_url unless env['warden'].authenticated?
end
我得到一个
nil
。我只是设法使用
controller.env['warden'] = ...
使它工作,并且它可以工作。这是有道理的,因为它位于 Controller 级别,所以我想我的问题是,在我看完所有示例后,它不起作用吗?
我的
spec_helper
中有这个:config.include Warden::Test::Helpers
任何帮助将是巨大的!
最佳答案
我为Warden写了 Controller 测试助手。
http://kentaroimai.com/articles/1-controller-test-helpers-for-warden