Модуль загрузки Ruby в тесте
Я запускаю приложение padrino и начал с включенными почтовыми программами. Я хочу проверить, что письмо отправлено, и ранее у него не было проблем с доступом к объекту Mail::TestMailer для просмотра писем, доставленных во время теста.
Это основа того, что я делаю, но не совсем вопрос. Я хочу знать, как модуль может стать доступным для среды выполнения. У меня есть этот тест в двух версиях
первый
def test_mailer
Mail::TestMailer.deliveries.clear
get '/owners/test'
e = Mail::TestMailer.deliveries.pop
puts e.to.to_s
end
второй
def test_mailer
get '/owners/test'
Mail::TestMailer.deliveries.clear
e = Mail::TestMailer.deliveries.pop
puts e.to.to_s
end
Во второй версии этот тест не пройден с сообщением об ошибке NoMethodError: undefined method to' for nil:NilClass
Это имеет смысл для меня. Я очищаю сообщения, затем спрашиваю последнее, которое должно быть нулевым. Однако, когда я запускаю тест на первой версии, ошибка NameError: uninitialized constant OwnersControllerTest::Mail
Так или иначе, метод get вызывает Mail
объект / модуль должен быть доступен. Я не понимаю, как это может сделать это. Я не знаю, является ли это тестом для рэка или падрино, поэтому не уверен, какую дополнительную информацию можно скопировать здесь.
1 ответ
Добавлять require 'mail'
к вашему помощнику по тестированию.
Проблема объясняется здесь: https://github.com/padrino/padrino-framework/issues/1797