我在测试 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

10-08 14:08