Модуль загрузки 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

Другие вопросы по тегам