如何测试Sidekiq作业失败?

时间:2015-09-30 19:54:35

标签: ruby unit-testing integration-testing sidekiq

在例外情况下,sidekiq中的作业将被置于重试队列中。

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

但是,在测试中,任务中发生的异常不会导致任务放入重试队列。异常冒出perform_async

因此,测试中发生的事情是运行代码时无法实现的。

那么,测试触发可能失败的作业并将其置于重试队列中的代码的最佳方法是什么?

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

1 个答案:

答案 0 :(得分:4)

它的设计很难,因为你不应该这样做。您不应该测试Sidekiq功能。测试您自己的代码,而不是其他库/框架提供的功能。