SuperAPI AI 工具集

testing-best-practices

测试与质量

查看项目

更新于 10-14 07:02

技能介绍

Testing Best Practices 是一套用于指导编写和维护测试代码的规则集合,覆盖单元测试、集成测试与测试驱动开发(TDD)原则,目标是为可靠、可维护的测试套件提供参考。该技能包含 34 条规则,分布在 7 个类别中,示例使用 TypeScript 与 Jest/Vitest。

用途 它用于在以下工作中提供指导:编写单元测试或集成测试;评审测试代码质量;改进测试覆盖率策略;搭建测试基础设施;调试不稳定或缓慢的测试。

主要能力与规则分类 规则按优先级和类别组织,并使用前缀标识:

  1. 测试结构(CRITICAL,前缀 struct-):AAA 模式、描述性测试名称、每个测试一个逻辑断言、使用 describe/it 组织测试套件、适当采用 given-when-then 的 BDD 风格、正确的 setup 和 teardown。
  2. 测试隔离(CRITICAL,前缀 iso-):测试独立运行、无共享可变状态、确定性(每次运行结果相同)、无顺序依赖、测试后清理、策略性使用测试替身。
  3. 断言(HIGH,前缀 assert-):使用具体断言、提供有意义的失败信息、期望值在前、避免魔法数字(使用具名常量)、为领域逻辑编写自定义匹配器。
  4. 测试数据(HIGH,前缀 data-):使用工厂生成测试数据、为复杂对象使用构建器模式、用 faker 生成真实的假数据、保持测试数据最小化、覆盖真实的边界情况、管理测试夹具。
  5. 模拟(MEDIUM,前缀 mock-):仅在边界处模拟、验证重要的模拟调用、不要过度模拟、使用 MSW 提供真实的模拟行为。
  6. 覆盖率(MEDIUM,前缀 cov-):关注有意义的覆盖率、覆盖边界情况与边界值、测试错误场景、不以 100% 覆盖率为目标。
  7. 性能(LOW,前缀 perf-):保持单元测试快速(每个小于 50ms)、并行运行测试、为快速反馈组织测试。

使用方式 可以阅读各条规则文件获取详细说明,例如 rules/struct-aaa-pattern.md、rules/iso-independent-tests.md、rules/mock-boundaries.md、rules/cov-meaningful.md。文档还给出了 AAA 模式、描述性测试命名和测试隔离的示例代码。如需查看包含全部规则展开的完整指南,可参阅 AGENTS.md。

参考资源 文档列出 Vitest Documentation、Jest Documentation、Testing Library、MSW(Mock Service Worker)等参考链接。

限制 该技能聚焦于测试实践规则,不涉及具体项目的测试运行配置细节;示例基于 TypeScript 与 Jest/Vitest,其他语言或框架的适配情况暂未提供。