SuperAPI AI 工具集

queue-worker-test

测试与质量

查看项目

更新于 10-15 22:19

技能介绍

用途:为后台任务处理器生成测试,验证任务执行、重试语义、失败处理与副作用,且不依赖真实队列 broker。

主要能力:先做发现(队列库、测试运行器、worker 副作用、重试配置、失败行为、并发、已有测试设施),再决定架构。默认策略是直接调用处理器函数,绕过队列;需要测 worker 注册、并发或队列事件钩子时用内存队列(如 BullMQ + ioredis-mock);仅在测入队代码时 mock 队列客户端。

覆盖范围:处理逻辑(happy path、数据变体、副作用断言)、重试行为(库管理重试与处理器内自定义重试分开测)、失败处理(预期业务失败不重试、瞬时失败应重试、重试耗尽/死信)、并发与顺序(仅当 worker 显式处理并发时)。

用法要点:构造最小 fake Job 对象,只 stub 处理器实际用到的属性;用 jest.spyOn 在 beforeEach 中按测试控制返回值,避免模块级 jest.mock 的提升复杂度;Vitest 用 vi.spyOn、vi.fn()、vi.resetAllMocks()。

限制与注意:不要用 setTimeout/sleep 等待任务完成,应使用完成事件或异步工具;若处理器直接调用 job.moveToFailed(),需 mock 该方法;若处理器与队列客户端紧耦合,应标记可测试性问题并建议抽取重构。SQS 消费者的测试单元是消息处理函数,而非轮询循环。资料未提供具体安装命令、收费或平台信息。