用途:为前端和后端代码编写或审查单元测试时提供模式指导,也可用于重构既有测试套件,关注覆盖率、隔离性与结构。
主要能力:
- AAA 模式(Arrange-Act-Assert),每个测试用空行分隔三个阶段。
- 测试隔离:用 beforeEach 为每个测试创建全新实例,避免测试间共享可变状态导致顺序依赖。
- 一个概念一个断言:同一结果的不同侧面可多次 expect;测试名写成 should <expected> when <condition> 的规格式命名。
- Mock 边界:只 mock I/O(仓库、HTTP、文件系统、时钟),不要 mock 正在测试的逻辑本身。
- 正负断言并重:既验证应发生的结果,也验证无效输入被拒绝、失败时无副作用(如 expect(repo.save).not.toHaveBeenCalled())。
- 决策树:React 组件委派给 react-testing-library 技能;纯函数无需 mock;有依赖的服务通过 jest 技能 mock I/O;每个行为一个 it,错误处理单独成例。
- 边界处理:异步必须 await,时间相关逻辑用 fake timers;为 else、catch、default 分支补测试;只测公共 API;共享工厂函数放入 test/helpers/;随机数据需设种子或冻结 Date.now()。
使用方式:按检查清单执行——每个测试遵循 AAA;测试之间无顺序依赖;mock 限于 I/O 边界;命名描述性;beforeEach 建新实例、afterEach 恢复 mock;错误与边界路径有专门用例;测试文件与源码同目录,命名为 <module>.test.ts。
适用场景:编写或审查前后端单元测试、重构测试套件。
限制:不适用于 Jest 语法与 mock API(委派 jest 技能)、React 组件查询(委派 react-testing-library 技能),也不覆盖集成或 E2E 测试策略。资料未提供安装命令、收费与平台信息。