Започвам в рубин на релси и създадох 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, тъй като това не позволява да се пишат тестове за проект.