テストスイートで一貫して次のエラーが発生し始めました。
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 }}