提前致谢!
Sidekiq工作正常,但我无法用Devise Async测试它,或者我应该说我不能测试后者?
Sidekiq工作正常,但我无法用Devise Async测试它,或者我应该说我不能测试后者?
根据Sidekiq的文档,当测试模式设置为fake!时,给予worker的任何作业都会被推送到名为相同worker的作业的数组中.因此测试这个数组的增加是微不足道的.
但是,使用Devise Async,虽然它的后端包括Sidekiq :: Worker,但它并非如此微不足道.这是我尝试测试的一小部分内容:
> Devise :: Async :: Backend :: Sidekiq.jobs
> Devise :: Mailer.deliveries
> ActionMailer :: Base.deliveries
> Devise :: Async :: Backend :: Worker.jobs
这些测试对象都没有指出尺寸的增加.由于Devise将其电子邮件作为模型回调发送,我尝试在模型和控制器规范中进行测试.使用Factory Girl和Database Cleaner,我也尝试了两种模式:事务和截断.毋庸置疑,我也尝试了Sidekiq的两种模式:假的!和内联!
我错过了什么?
解决方法
如
documentation中所述,您可以将队列大小检查为
Sidekiq::Extensions::DelayedMailer.jobs.size