【发布时间】:2015-09-30 19:54:35
【问题描述】:
sidekiq 中的作业,一旦出现异常,将被放入重试队列。
正因为如此,并且因为任务是异步运行的,MyWorker.perform_async(...) 永远不会抛出任务代码中生成的异常。
然而,在测试中,任务中发生的异常不会导致任务被放入重试队列。异常从perform_async 中冒出。
所以测试中发生的事情是运行代码时不可能发生的事情。
那么,测试触发可能失败并被放入重试队列的作业的代码的最佳方法是什么?
请注意,以下内容似乎对测试没有影响:Sidekiq.default_worker_options = { :retry => true}
【问题讨论】:
标签: ruby unit-testing integration-testing sidekiq