Я запускаю приложение padrino и начал работу с включенными почтовыми отправлениями. Я хочу проверить, отправлено ли письмо и ранее не было проблем с доступом к объекту Mail :: TestMailer, чтобы посмотреть почту, доставленную во время теста.Модуль загрузки Ruby в тесте
Это фон о том, что я делаю, но не совсем вопрос. Я хочу знать, как модуль станет доступен для среды выполнения. У меня есть этот тест в двух версиях
первого
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
. Я не понимаю, как это можно сделать. Я не знаю, является ли это проверкой на стойку или падрино, поэтому я не уверен, какую дополнительную информацию нужно копировать здесь.
'OwnersControllerTest' (и, следовательно,' OwnersControllerTest :: Mail') не определена в кодовую Padrino, является его от твоего? Если это так, похоже, что вам нужен файл 'require'd. – iain