Stubbing Warden на контроллерах

У меня проблема с тестированием моих контроллеров и использованием Warden.

Все примеры указывают на заглушку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

Любая помощь будет отличной!

Ответы на вопрос(2)

Ваш ответ на вопрос