用途:在编写测试前,为每个发生变更的单元或函数先产出测试矩阵,明确每个用例的类别与断言策略,使测试覆盖更有条理。
主要能力:按类别组织用例,包括成功路径、边界值(最小、最大、空、零、一、大输入)、守卫条件(类型/形状/范围非法、缺少必填值)、失败路径(下游失败、超时、重试耗尽)、状态转换(创建/更新/删除/重试/幂等)以及确定性(重复运行的稳定行为)。每个用例需填写输入、预期输出、可观察副作用(数据库行、文件、容器状态、stdout)、断言策略和 Mock 边界。
使用方式:参考输出格式模板,标题为“## Test Matrix: <unit>”,逐项列出 Case、Category、Input、Expected output、Observable side effect、Assertion strategy、Mock boundary。断言策略遵循 policy-core 技能中的断言层级与 Mock 规则,优先使用 Level 1-5 行为断言而非 Level 6-7 接线断言。例如返回值用 expect(result).toEqual(...),抛错用 expect(() => fn()).toThrow(ErrorType),文件写入需读回文件验证内容,数据库状态需查询验证行,容器状态用 inspectContainer() 或集成测试,而非仅校验 Mock 是否被调用。
Mock 决策:先判断能否用真实实现(内存数据库、临时目录、真实 Zod 解析);系统边界(Docker 守护进程、网络、子进程)可以 Mock;自己仓库内的其他模块不要 Mock,用真实模块;非确定性调用(Date.now、crypto.random)可对特定调用做 spy/stub。若使用 Mock,必须同时有一个由 INTEGRATION=true 门控的集成测试覆盖真实路径。
限制:资料未提供该技能的具体安装命令、收费信息与平台支持范围;断言层级的具体编号定义依赖 policy-core 技能,本文未展开。