ruby-on-rails 测试使用Sidekiq排队的邮件

vq8itlhq  于 2022-11-19  发布在  Ruby
关注(0)|答案(2)|浏览(123)

因为我们需要有计划电子邮件发送的能力,所以我们已经迁移到使用Sidekiq通过deliver_later方法发送电子邮件。

ActionMailer::Base.deliveries[index]

检查收件人、主题、正文、附件等。
出于测试目的,在使用Sidekiq和deliver_later时,是否有等效的机制来检查排队电子邮件的内容?

cqoc49vn

cqoc49vn1#

为了测试邮件的内容,你必须渲染需要执行作业的邮件模板。我建议你应该分开单元测试:
1.用于检查电子邮件是否使用正确的参数入队的作业规范。
1.电子邮件规范,用于检查电子邮件内容。
如果您想使用端到端的样式,请使用Sidekiq::Testing.inline!执行作业,然后像以前一样使用ActionMailer::Base.deliveries[index]

bis0qfac

bis0qfac2#

解决方案是在所有电子邮件排队后执行perform_enqueued_jobs,这样,所有现有的测试机制都能正常工作。
如需其他信息,请参阅https://api.rubyonrails.org/v7.0.4/classes/ActiveJob/TestHelper.html

相关问题