sidekiq 中的作业,一旦出现异常,将被放入重试队列。
正因为如此,并且因为任务是异步运行的,MyWorker.perform_async(...)
永远不会抛出任务代码中生成的异常。
但是在测试中,任务中出现的异常不会导致任务被放入重试队列。异常从 perform_async
中冒出。
所以在测试中发生的事情是运行代码时不可能发生的事情。
那么,什么是测试代码的最佳方法,这些代码会触发可能会失败并被放入重试队列的作业?
请注意,以下内容似乎对测试没有影响:
Sidekiq.default_worker_options = { :retry => true}
最佳答案
它被设计得很难,因为你不应该这样做。您不应该测试 Sidekiq 功能。测试您自己的代码,而不是其他库/框架提供的功能。
关于ruby - 如何测试 Sidekiq 作业失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32874510/