如何测试 Sidekiq 作业失败?

How can I test Sidekiq job failures?

sidekiq 中的一个作业,如果出现异常,将被放入重试队列。

正因为如此,并且因为任务是 运行 异步的,MyWorker.perform_async(...) 永远不会抛出任务代码中生成的异常。

但是在测试中,任务出现异常并不会导致任务进入重试队列。异常从 perform_async 冒出。

所以在测试中发生的事情是 运行 编译代码时不可能发生的事情。

那么,测试代码的最佳方法是什么,该代码会触发可能会失败并被放入重试队列的作业?

请注意,以下内容似乎对测试没有影响:
Sidekiq.default_worker_options = { :retry => true}

它被设计得很难,因为你不应该这样做。您不应该测试 Sidekiq 功能。测试您自己的代码,而不是其他 libraries/frameworks.

提供的功能