用途:用于在 NestJS 项目中编写单元测试与端到端(E2E)测试,并规定 mock 策略、数据库隔离和严格 TypeScript 写法。
主要能力与组织方式:单元测试放在 src//*.spec.ts,用于隔离逻辑;E2E 测试放在 test//*.e2e-spec.ts,用于完整应用流程。优先级为 P2(MEDIUM)。
用法要点:单元测试使用 Test.createTestingModule() 并 mock 所有依赖,通过 { provide: X, useValue: mockX } 提供替身,遵循 AAA(Arrange-Act-Assert)模式,并在 afterEach 调用 jest.clearAllMocks()。E2E 使用真实测试数据库(Docker),明确禁止 mock 数据库,afterEach 中通过事务回滚或 TRUNCATE 清理,beforeAll 创建应用、afterAll 关闭;守卫可用 .overrideGuard(X).useValue({ canActivate: () => true }) 覆盖。strict TypeScript 为强制要求:不得使用 any,改用类型化对象、jest.Mocked<T> 或 as unknown as T;不得使用 eslint-disable;写 mock 数据前需读取实际 DTO 类;嵌套 expect.anything() 需转为 expect.anything() as unknown;不得声明未使用变量。
反模式:不直接测试私有方法(应经公共方法测试);E2E 不 mock 数据库;不共享状态(afterEach 清理);不遗留资源(afterAll 关闭应用与数据库)。
扩展参考:references/patterns.md 提供初始化、mock 模式、E2E 流程、测试构建器与覆盖率配置;references/strict-typescript-testing.md 提供 Jest 匹配器、mock 类型与 DTO 校验等严格类型写法。
限制:资料未提供具体安装命令、依赖版本、价格与平台信息。