在ActionMailer::TestCase中出现NoMethodError: undefined method 'env' for nil:NilClass错误。

4

我正在接触Ruby on Rails并创建了一个示例应用程序。在这个应用程序中,我有一个邮件类和一个测试生成的邮件类。 我设法使所有测试都正常工作,除了ActionMailer:: TestCase的测试。 每次运行测试时,我都会收到错误消息:

NoMethodError:没有定义“nil:NilClass”的方法'env'。

我的生成的邮件测试方法如下:

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

有人知道如何解决这个问题吗?

1个回答

1
你正在包含 Devise::TestHelpers。 你应该为那些真正需要 Devise 的测试创建特定的 test_helper
同样的问题在 stackoverflow 上。 undefined method 'env' for nil:NilClass 的意思是“未定义的方法 'env' 适用于空值类”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接