2

我正在使用delayed_job 在Rails 应用程序中发送电子邮件,我想测试本地发送的电子邮件。通常我所做的只是将邮件配置设置为 :test 然后查看 ActionMailer::Base.deliveries,但问题是当我调用 MyMailer.delay.some_email 而不是 MyMailer.some_email.deliver 时,电子邮件永远不会收到添加到交货。我认为这是因为我不再调用“deliver”,但在使用delayed_job 时您不应该调用“deliver”。

我所有的生产电子邮件都可以正常工作。只有测试版没有。

想法?

4

1 回答 1

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
于 2012-11-06T14:39:55.817 回答