[英]How can I test an asyncronous mailer in a rails RSpec feature test?
我正在尝试编写功能测试,其中用户发表评论,然后通过rails mailer发送通知。 如果我将邮件程序调用更改为使用.deliver_now
则一切正常,但我不希望在生产环境中使用。 我需要能够测试异步邮件传递,或者甚至可以在测试方案中强制邮件现在传递。
login_as campaign_owner
visit campaign_path campaign
fill_in 'Comment', with: 'Foo'
click_on 'Submit'
expect(page).to have_content I18n.t('comments.create.success')
expect(campaign.comments.count).to eq 1
expect(UserMailer.deliveries.count { |d| d.to == [campaign_watcher.email]}).to eq 1
您始终可以通过测试所运行的环境来更改邮件传递的行为。
例如,
if Rails.env.test?
UserMailer.mail_template().deliver_now
else
UserMailer.mail_template().deliver_later
end
尽管您的测试实际上为您带来了什么价值值得怀疑
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.