##状況
Rspecのコントローラースペックを実装中に表題のエラーが発生しました。
初めて見るエラー文で戸惑ったのですが、解決策がシンプルだったため記載します。
##環境
railsを用いたアプリ開発中で、deviseを用いたユーザー登録機能を実装している。
##解決策
結論から。
エラー文には
Make sure that your application is loading Devise
and Warden as expected and that the `Warden::Manager`
middleware is present in your middleware stack.
If you are seeing this on one of your tests,
ensure that your tests are either executing
the Rails middleware stack or that your tests are using the `Devise::Test::ControllerHelpers` module to inject the `request.env['warden']` object for you.
(アプリケーションがDeviseをロードしていることを確認してください
とWardenは期待通りであり、 `Warden :: Manager` ミドルウェアはミドルウェアスタックに存在します。 あなたのテストのいずれかでこれを見ている場合、 テストが実行されていることを確認します
Railsミドルウェアスタック、またはテストで `Devise :: Test :: ControllerHelpers`
モジュールを使用して` request.env ['warden'] `オブジェクトを挿入すること。)
と記載されています。
に下記を記載します。
rails_helper.rb
config.include Devise::Test::ControllerHelpers, type: :controller
config.include Devise::Test::ControllerHelpers, type: :view
(私は一番下の行に記載しました。)
再度rails sでサーバーを立ち上げrspecを行うと、
エラーが出ていた箇所のテストが通っていました。
##原因
ユーザー登録で使用したgem "devise"はwarden をベースにした
gemということで、ベースであるwardenのプロキシサーバーのエラーが起こり、エラー文が出ていた様子です。
プロキシサーバーとは、通常のサーバーではない代理のサーバーのような意味合いで、
今回は指定したプロキシサーバーが見つからない、ということでのエラーなのではないかと解釈しました。
##参考にさせていただいた記事
【Rails4】Devise::MissingWarden エラーへの対処
[wardencommunity/warden]
(https://github.com/wardencommunity/warden/wiki)