Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 命名错误:未定义的方法';环境';对于ActionMailer::TestCase中的nil:NilClass_Ruby On Rails_Ruby_Testing_Actionmailer - Fatal编程技术网

Ruby on rails 命名错误:未定义的方法';环境';对于ActionMailer::TestCase中的nil:NilClass

Ruby on rails 命名错误:未定义的方法';环境';对于ActionMailer::TestCase中的nil:NilClass,ruby-on-rails,ruby,testing,actionmailer,Ruby On Rails,Ruby,Testing,Actionmailer,我从RubyonRails开始,创建了一个示例应用程序。在这个应用程序中,我有一个邮件类和一个测试生成的邮件类。 除了ActionMailer::TestCase中的测试外,我设法让所有测试都正常工作。 每次运行测试时,我都会收到一条错误消息: NoMethodError:未定义nil:NilClass的方法“env” 我生成的mailer测试方法如下所示: test "new_project" do mail = ProjectMailer.new_project assert

我从RubyonRails开始,创建了一个示例应用程序。在这个应用程序中,我有一个邮件类和一个测试生成的邮件类。 除了ActionMailer::TestCase中的测试外,我设法让所有测试都正常工作。 每次运行测试时,我都会收到一条错误消息:

NoMethodError:未定义nil:NilClass的方法“env”

我生成的mailer测试方法如下所示:

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
我的测试助手中有

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

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

你包括
designe::TestHelpers
。 您应该为真正需要设计的测试创建特定的
test\u helper

关于stackoverflow的同样问题

我的意见是:您不应该使用Desive,因为它会阻止为项目编写测试