根据Rails documentation,方法assert_emails
允许转换语法:
assert_difference ->{ ActionMailer::Base.deliveries.size }, +1 do
post :method_that_should_send_email
end
到
assert_emails 1 do
post :method_that_should_send_email
end
我觉得好多了,因为我不必每次都复制粘贴长语法。
但是,在使用上述代码时,我的控制器测试中出现以下错误:
NoMethodError: undefined method `assert_emails'
我认为这是因为该方法仅适用于邮件程序测试。
有没有办法让它也可用于控制器测试?是否有一个很好的理由为什么默认情况下不可用?有没有更好的方法来测试调用特定路由会导致发送电子邮件?
感谢。
答案 0 :(得分:1)
我在常规测试(而不是$v-font-family: MyRobotoFont, arial, sans-serif
)中尝试使用assert_emails
时遇到了同样的问题。
当我将ActionMailer::TestCase
包含在我的测试类中时,帮助程序开始工作。
ActionMailer::TestHelper
我相信这也适用于您的控制器测试。