SuperAPI AI 工具集

testing-patterns

测试与质量

查看项目

更新于 10-16 06:58

技能介绍

Testing Patterns 是一份讲解测试模式与原则的资料,主题为「可靠测试套件的原则」。以下按资料内容整理。

一、用途 用于指导测试套件的设计与编写,帮助选择合适的测试类型、组织测试结构、决定 mock 边界,并规避常见反模式。

二、主要能力(内容要点)

  1. 测试金字塔:E2E 少(关键流程)、集成测试适量(API、DB 查询)、单元测试多(函数、类)。
  2. AAA 模式:Arrange(准备测试数据)、Act(执行被测代码)、Assert(验证结果)。
  3. 测试类型选择:单元测试适合纯函数与逻辑,速度快(小于 50ms);集成测试适合 API、DB、服务,速度中等;E2E 适合关键用户流程,速度慢。
  4. 单元测试原则:好单元测试应 Fast(每个小于 100ms)、Isolated(无外部依赖)、Repeatable(结果始终一致)、Self-checking(无需人工验证)、Timely(与代码同步编写)。应测试业务逻辑、边界情况、错误处理;不应测试框架代码、第三方库、简单 getter。
  5. 集成测试原则:关注 API 端点(请求/响应)、数据库(查询、事务)、外部服务(契约)。Setup/Teardown 分为 Before All(连接资源)、Before Each(重置状态)、After Each(清理)、After All(断开连接)。
  6. Mocking 原则:应 mock 外部 API、单元测试中的数据库、时间/随机、网络;不应 mock 被测代码、简单依赖、纯函数、内存存储。Mock 类型包括 Stub(返回固定值)、Spy(追踪调用)、Mock(设置预期)、Fake(简化实现)。
  7. 测试组织:命名可用 should 行为、when 条件、given-when-then 模式;分组使用 describe(相关测试分组)、it/test(单个用例)、beforeEach(公共 setup)。
  8. 测试数据:策略包括 Factories(生成测试数据)、Fixtures(预定义数据集)、Builders(流式对象创建);原则包括使用真实数据、对非关键值随机化(faker)、共享公共 fixtures、保持数据最小。
  9. 最佳实践:每个测试一个断言、测试相互独立、测试快速、名称具描述性、做好清理。
  10. 反模式:不要测实现而应测行为;不要重复测试代码而应使用工厂;避免复杂测试 setup;不要忽略 flaky 测试而应修复根因;不要跳过清理而应重置状态。

三、使用方式 资料为知识型内容,未提供安装命令、代码示例或具体工具集成方式,暂未提供可执行的使用步骤。

四、适用场景 适用于需要编写或改进单元测试、集成测试、E2E 测试的工程场景,以及需要决定 mock 边界、组织测试目录与命名、管理测试数据的团队。

五、限制 资料为原则性说明,未提供特定语言、框架或工具的绑定实现;未提及收费、价格、平台或效果数据,相关事实暂未提供。