2017-07-11 49 views
3

我正在从延迟作业迁移到Sidekiq。有一些规范我已经有了,我也想改变它们以与sidekiq兼容。从延迟作业迁移到Sidekiq

it { expect(Delayed::Job.select{|job| job.handler.match(/MyJob/)}.size).to be 0 } 

这基本上检查是否没有MyJob DelayJob预定。我如何在sidekiq中为同一项工作测试同样的事情。

回答

0

我对Delayed::Job了解不多,但是从您的测试看来,您似乎在测试队列大小是否为0,对吗?如果是这样,Sidekiq有解释一些测试,你可以做here,并与该网页上的说明,关于您使用Rspec的配置的部分,你可以这样做

it {expect(MyJob.jobs.size).to be_eql 0 }

而且,如果你喜欢更多的测试选项,看看this gem

0

使用Sidekiq如果您使用的基本用法是为特定作业设置自己的工人,即MyJobWorker。然后,在代码中你可以使用它像这样:

MyJobWorker.perfom_async(id: 5) 

然后在你的天赋是作为断言工人有许多工作那样简单:

it { expect(MyJobWorker.jobs.size).to be(0) } 

Sidekiq有一些很不错的docs on testing

为了给出更具体的答案,请包括更多关于如何设置Sidekiq工人的代码以及您如何使用工人。