在RSpec中使用devise-async gem

时间:2012-09-18 08:25:20

标签: rspec devise resque

我使用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时我可以使用类似的技术吗?

2 个答案:

答案 0 :(得分:3)

我将以下行放在spec_helper.rb中:

Devise::Async.enabled = false

并且有效。

答案 1 :(得分:0)

好的 - 我找到了答案:

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

Resque::Mailer.excluded_environments = [:test]

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

Resque.inline = Rails.env.test?