2

我正在使用 devise-async gem 异步发送我的设计电子邮件 - 使用 Resque。

我正在做一些简单的 RSpec 控制器测试,以确保通过检查 ActionMailer::Base.deliveries 数组来发送忘记密码。

在我开始使用 devise-async gem 之前,这曾经有效。如何立即“发送”队列中的电子邮件,以便它们最终出现在 ActionMailer::Base.deliveries 中?

例如 - 当我使用delayed_job 异步发送它们(不使用devise-async gem)时,我可以将它添加到我的设计初始化程序中:

Delayed::Worker.delay_jobs = !Rails.env.test?

这将立即发送电子邮件以使其更易于测试。那么 - 在使用 devise-async 时我可以使用类似的技术吗?

4

2 回答 2

3

我在 spec_helper.rb 中加入以下行:

Devise::Async.enabled = false

它奏效了。

于 2013-08-16T12:02:34.777 回答
0

好的 - 我找到了答案:

在初始化程序文件中,执行以下操作:

Resque::Mailer.excluded_environments = [:test]

对于一般 Resque 作业,添加以下内容:

Resque.inline = Rails.env.test?
于 2012-09-29T10:21:31.937 回答