用途:为编写、评审和规划测试提供一套有明确立场的团队约定,核心标准是“测试必须在行为破坏时失败”。若说不出它能捕获什么缺陷,就属于覆盖表演,只增加重构维护成本。
主要能力:主张断言输出(返回值、抛出的错误、持久化状态),而非仅断言 mock 被调用;测试决策点(分支、错误转换、状态迁移、边界条件),而非逐行覆盖;覆盖率只作为“没有空文件”的下限信号。提出三类测试模式:功能(含边界与失败路径,UI 还需可达性、可访问名称与 axe 检查)、性能(真实负载与数据量)、安全(无凭证 401、角色错误 403、跨租户对象 404/403、畸形或超大输入 400 而非 500、重复请求 429,以及 nosniff、frame policy、HSTS 等响应头)。
使用方式:测试命名采用 should [outcome] when [condition];测试相互独立、不依赖顺序;控制时间、随机性与环境;在进程边界而非自有单元之间 mock;mock 完整镜像真实响应,使用带真实默认值的工厂;不为测试在生产代码加方法;不稳定测试等同失败测试。按速度分层:单元测试保存即跑、约五分钟内;集成测试提交时跑、十五分钟内;端到端在 PR 时跑、三十分钟内;更慢的放夜间。报告结果时按严重度与置信度排序,先全部记录再另行决定处置。
适用场景:编写或评审测试、制定测试策略、诊断“抓不到问题”的测试、生成测试报告与缺陷记录。
限制:资料未提供具体安装命令、平台支持、收费方式或效果数据;参考文档包括 tdd-iron-laws.md、testing-anti-patterns.md、nestjs-jest-common.md、nestjs-jest-unit-tests.md、nestjs-jest-contract-tests.md、test-reports.md,按对应场景加载。