0

テストスイートで一貫して次のエラーが発生し始めました。

NoMethodError: undefined method 'user' for nil:NilClass

テストスイートで行っている投稿リクエストからのもののようです。スタック トレースの上部付近には、次のものがありました。

devise-2.1.2/lib/devise/controllers/helpers.rb:259:in 'handle_unverified_request'
actionpack-3.2.8/lib/action_controller/metal/request_forgery_protection.rb:78:in 'verify_authenticity_token'

投稿リクエストで渡すのは電子メールだけであり、認証トークンではないため、これは理にかなっています。ただ、どうにか工夫して対応した方がいいような気がします。を含めDevise::TestHelpersており、このリクエストを実行するために sign_in を呼び出す必要はありません。

raise Rails.env.inspectさらに調べてみると、 の場合、「開発」を受け取ることがわかりました。それが、devise が真正性トークンがあることを期待している理由ですか? テスト環境で強制的に実行するにはどうすればよいですか (推測し$ rake test:functionals -e testて無駄にしました)。

これを引き起こしている行は

post :forgot_password, {:user => { :email => users(:quentin).email }}

4

1 に答える 1