2014-10-26 4 views
0

Я запускаю приложение 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. Я не понимаю, как это можно сделать. Я не знаю, является ли это проверкой на стойку или падрино, поэтому я не уверен, какую дополнительную информацию нужно копировать здесь.

+0

'OwnersControllerTest' (и, следовательно,' OwnersControllerTest :: Mail') не определена в кодовую Padrino, является его от твоего? Если это так, похоже, что вам нужен файл 'require'd. – iain

ответ