簡體   English   中英

NoMethodError:nil的未定義方法'env':ActionMailer :: TestCase中的NilClass

[英]NoMethodError: undefined method 'env' for nil:NilClass in ActionMailer::TestCase

我從rails上的ruby開始並創建了一個示例應用程序。 在這個應用程序中,我有一個郵件類和一個測試生成的Mail類。 除了ActionMailer :: TestCase的測試之外,我設法讓所有測試工作。 每次運行測試時都會收到錯誤消息:

NoMethodError:nil的未定義方法'env':NilClass。

我生成的郵件程序測試方法如下所示:

test "new_project" do
    mail = ProjectMailer.new_project
    assert_equal "New project", mail.subject
    assert_equal ["to@example.org"], mail.to
    assert_equal ["from@example.com"], mail.from
    assert_match "Hi", mail.body.encoded
end

我有我的test_helper

class ActionController::TestCase
  include Devise::TestHelpers
end

class ActionMailer::TestCase
      include Devise::TestHelpers
    end

class ActiveSupport::TestCase
  ActiveRecord::Migration.check_pending!

  include Devise::TestHelpers
  fixtures :all
end

任何人都知道如何解決這個問題?

你包括Devise::TestHelpers 您應該為測試創建特定的test_helper ,它確實需要Devise。

stackoverflow上的相同問題。

nil的未定義方法'env':NilClass

我的意見是:你不應該使用Devise,因為它會阻止對項目的寫測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM