提问人:Edward Caulfield 提问时间:11/4/2022 更新时间:11/15/2022 访问量:324
测试使用 Sidekiq 排队的邮件
Testing Mails queued with Sidekiq
问:
由于我们需要能够安排电子邮件发送,因此我们已迁移到使用 Sidekiq 通过该方法发送电子邮件。在旧制度下,我们的测试可以使用deliver_later
deliver_now
ActionMailer::Base.deliveries[index]
检查收件人、主题、正文、附件等......
出于测试目的,在使用 Sidekiq 和 ?deliver_later
答:
0赞
tejasbubane
11/10/2022
#1
为了测试电子邮件的内容,您必须呈现需要为其执行作业的电子邮件模板。我建议你应该分开单元测试:
- 作业规范,用于检查电子邮件是否使用正确的参数排队。
- 电子邮件规范,用于检查电子邮件内容。
如果要采用端到端样式,请使用 to 执行作业,然后像以前一样使用。Sidekiq::Testing.inline!
ActionMailer::Base.deliveries[index]
0赞
Edward Caulfield
11/14/2022
#2
解决方案原来是在所有电子邮件排队后执行。在此之后,所有现有的测试机制都起作用了。perform_enqueued_jobs
有关其他信息,请参阅 https://api.rubyonrails.org/v7.0.4/classes/ActiveJob/TestHelper.html。
评论