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