コントローラのテストと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
どんな助けでも素晴らしいでしょう!