我从rails上的
ruby开始并创建了一个示例应用程序.在这个应用程序中,我有一个邮件类和一个测试生成的Mail类.
除了ActionMailer :: TestCase的测试之外,我设法让所有测试工作.
每次运行测试时都会收到错误消息:
NoMethodError: undefined method ‘env’ for nil: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上的相同问题.
undefined method ‘env’ for nil:NilClass
我的意见是:你不应该使用Devise,因为它会阻止对项目的写测试.