我正在使用delayed_job在Rails应用中发送电子邮件,我想测试本地发送的电子邮件。通常我所做的只是将邮件程序配置设置为:test然后查看ActionMailer :: Base.deliveries,但问题是当我调用MyMailer.delay.some_email而不是MyMailer.some_email.deliver时,电子邮件永远不会得到添加到交付。我认为这是因为我不再称之为“交付”,但在使用delayed_job时你不应该叫“交付”。
我的所有制作电子邮件都可以正常使用。只有测试者没有。
思想?
答案 0 :(得分:2)
在测试环境中没有处理作业,因为没有工作跑步者工作。您需要检查作业是否已添加到队列中。
# Call the function
assert_not_equal Delayed::Job.count, 0, "Jobs have been added to the queue"
然后,您可以通过关闭来测试作业,如下所示:
Delayed::Worker.new.work_off 1
# Check the job has been done as expected