我正在运行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
对象/模块可用。我不明白它是如何做到这一点的。我不知道这是机架测试还是padrino事情,所以我不确定要在这里复制哪些额外信息。
答案 0 :(得分:0)
将require 'mail'
添加到测试助手。
此问题在此解释:https://github.com/padrino/padrino-framework/issues/1797