/ / NoMethodError: undefined метод 'env' за нула: NilClass в ActionMailer :: TestCase - ruby-on-rails, ruby, testing, actionmailer

NoMethodError: недефиниран метод "env" за нула: NilClass в ActionMailer :: TestCase - рубин на релси, рубин, тестване, actionmailer

Започвам в рубин на релси и създадох aзаявление за проба. В това приложение имам клас поща и тестово генериран клас поща. Успях да накарам всички тестове да работят, с изключение на тестовете от ActionMailer :: TestCase. Всеки път, когато пускам тестовете, получавам съобщение за грешка:

NoMethodError: неопределен метод "env" за 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

Някой знае ли как да реши това?

Отговори:

2 за отговор № 1

Включвате Devise::TestHelpers, Трябва да създадете конкретни test_helper за тестове, които наистина се нуждаят от Devise.

Същият въпрос за stackoverflow.

неопределен метод 'env' за нула: NilClass

Моето мнение: не трябва да използвате Devise, тъй като това не позволява да се пишат тестове за проект.