/ / NoMethodError: невизначений метод "env" для nil: NilClass в ActionMailer

NoMethodError: невизначений метод 'env' для нуля: NilClass в ActionMailer :: TestCase - рубіни на рейках, рубій, тестування, actionmailer

Я починаю з рубіну на рейках і створююдодаток зразка. У цьому додатку у мене є клас пошти і тест генерується клас пошти. Мені вдалося отримати всі тести, крім тестів з 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' для nil: NilClass

Моя думка: ви не повинні використовувати Devise, тому що це перешкоджає писати тести для проекту.