测试使用 .delay 时是否创建了 Sidekiq 作业

Test if a Sidekiq job has been created when using .delay

我正在使用 Rails 4.2 和 sidekiq 4.1。我想测试我实际上是在排队等待删除用户。现在我正在代码中做这样的事情

User.delay.destroy(user_id)

而且我习惯这样测试

it { expect(UserRemoveWorker.jobs.size).to eq 1 }

但我没有这样的工作人员,我不想在我可以简单地调用 delay 方法时创建一个新工作人员(在本例中为 UserRemoveWorker)。

查看我是否已将作业排队/将其写入 Redis 的最佳方法是什么?

谢谢!

assert_equal 1, Sidekiq::Extensions::DelayedClass.jobs.size

https://github.com/mperham/sidekiq/wiki/Testing#testing-delay-and-delay_for-methods