ruby-on-rails - 测试使用 .delay 时是否创建了 Sidekiq 作业

标签 ruby-on-rails rspec redis sidekiq

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

User.delay.destroy(user_id)

我已经习惯这样测试了

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

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

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

谢谢!

最佳答案

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

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

关于ruby-on-rails - 测试使用 .delay 时是否创建了 Sidekiq 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35457073/

相关文章:

ruby-on-rails - Bigcommerce redirect_uri_mismatch oauth2 错误

ruby-on-rails - Rspec - 测试 rails View 呈现特定部分

ruby-on-rails - 处理嵌套关系 rails 2.3.x 中的 nil(空)值

ruby-on-rails - 使用 zeus : Postgres is being accessed by other users 进行 cucumber 和 RSpec 测试

java - 如果 Redis 宕机,Springboot 无法启动

java - 在不提供哈希码的情况下从 Redis 中检索 Person 对象

javascript - 加载正文(侧边栏除外)| Turbolinks rails

ruby-on-rails - 每次运行测试时,Rspec 和 Capybara 都会抛出不一致的 Postgresql 错误

ruby-on-rails - 将旧的 Rspec 语法转换为新语法

python - 同一任务执行多次