【问题标题】:Test if a Sidekiq job has been created when using .delay测试使用 .delay 时是否创建了 Sidekiq 作业
【发布时间】:2016-05-29 04:18:00
【问题描述】:

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

User.delay.destroy(user_id)

我已经习惯了这样的测试

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

但我没有这样的工人,我不想创建一个新工人(在这种情况下是 UserRemoveWorker),因为我可以简单地调用 delay 方法。

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

谢谢!

【问题讨论】:

  • Mike Perham 是 Sidekiq 的创建者,最好使用他的答案而不是我的答案。

标签: ruby-on-rails rspec redis sidekiq


【解决方案1】:
assert_equal 1, Sidekiq::Extensions::DelayedClass.jobs.size

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

【讨论】:

    猜你喜欢
    • 2015-03-29
    • 2013-10-30
    • 2018-03-25
    • 2013-03-21
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多