【发布时间】:2017-02-14 10:49:33
【问题描述】:
根据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'
我认为这是因为该方法仅在邮件测试中可用。
有没有办法让它也可用于控制器测试?有充分的理由说明默认情况下不可用吗?有没有更好的方法来测试调用特定路由是否会导致发送电子邮件?
谢谢。
【问题讨论】:
标签: ruby-on-rails testing ruby-on-rails-5