我在测试控制器和使用 Warden 时遇到问题。
所有示例都指向 stubbing request.env['warden']
。当我调用时,这会导致我的控制器出现问题env['warden']
,然后返回nil
。
举个粗略的例子,使用这个:
request.env['warden'] = double(Warden, :authenticate => nil,
:authenticate! => nil,
:authenticated? => false)
还有一个简单的前置过滤器,如下所示:
before_filter do
redirect_to new_user_session_url unless env['warden'].authenticated?
end
我得到一个nil
.
我只是设法让它使用controller.env['warden'] = ...
它并且它有效。这是有道理的,因为它位于控制器级别,所以我想我的问题是在我看过的所有示例中它不起作用。
我有这个spec_helper
:
config.include Warden::Test::Helpers
任何帮助都会很棒!