SuperAPI AI 工具集

testing-patterns

测试与质量

查看项目

更新于 10-13 17:12

技能介绍

Testing Patterns 是一套跨语言的通用测试策略与模式集合,目标是提供可应用于不同编程语言的测试方法。

用途 该资源用于指导如何规划与编写测试,内容涵盖测试分层、测试命名、测试结构、测试替身、测试隔离以及测试范围的选择,帮助团队在不同项目中统一测试实践。

主要能力

  • 测试金字塔:将测试划分为端到端测试(数量少、速度慢、成本高,覆盖完整系统、真实浏览器或 API 调用)、集成测试(数量适中,覆盖服务边界、数据库与 API)、单元测试(数量多、速度快、成本低,覆盖单个函数或类并 Mock 依赖)。
  • 测试类型说明:给出单元测试、集成测试、端到端测试在范围、速度、依赖处理、运行时机和覆盖率方面的对比。
  • 测试命名约定:采用 test_<unit><scenario><expected> 格式,并给出示例。
  • Arrange-Act-Assert(AAA)结构:以 Arrange 准备数据与依赖、Act 执行被测代码、Assert 验证结果的方式组织测试。
  • 测试替身:介绍 Stub(返回预设数据)、Mock(验证交互)、Spy(记录调用并使用真实实现)、Fake(可工作的简化实现)、Dummy(占位但从未使用)及其用途与示例。
  • 测试隔离策略:数据库隔离可采用事务回滚(快)、清空表(中)、独立数据库(慢);外部服务隔离可采用在边界处 Mock、假服务器(如 WireMock、MSW、VCR cassettes)、契约测试(如 Pact、消费者驱动契约)。
  • 测试范围建议:明确必须测试的内容(业务逻辑与计算、输入校验与错误处理、安全相关代码如认证与权限、边界与边缘情况)、应该测试的内容(集成点、状态转换、配置处理)以及应避免测试的内容(框架内部、第三方库行为、简单 getter/setter、私有实现细节)。
  • 测试质量检查项:测试相互独立(无顺序依赖)、确定性(无脆弱测试)、速度快(单元测试小于 100ms,集成测试小于 5s)、命名清晰描述行为、覆盖正常路径与错误情况、不重复生产逻辑、Mock 保持最小化(仅外部边界)。
  • 附加资源:TDD 工作流、Mock 策略、测试数据模式(Fixtures、Factories、Builders)、CI/CD 中的测试等参考文档,以及用于运行覆盖率并在低于阈值时失败的脚本 coverage-check.sh。

使用方式 该资源以文档形式呈现,包含测试相关说明、示例与参考文档链接,可直接阅读并对照实践。脚本 ./scripts/coverage-check.sh 可用于运行覆盖率检查,并在低于阈值时失败。具体安装或集成方式未在资料中提供。

适用场景 适用于需要在多语言项目中制定测试策略、组织单元/集成/端到端测试、选择测试替身与隔离方式、确定测试范围与质量标准的开发团队。

限制 资料未提供具体支持的编程语言清单、框架兼容性、安装命令、收费或授权信息;部分示例使用 Python 语法,但未声明仅限 Python。