У меня проблема с тестированием моих контроллеров и использованием 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
Любая помощь будет отличной!