工程开发
writing-good-tests avatar

writing-good-tests

软件测试编写与审查指南,专注于集成测试策略、条件式等待与专业 Mocking 模式,协助优化测试质量。

简介

此技能提供了一套专业软件测试架构,涵盖现代开发的最佳实践。专为需要提升测试套件可靠性并减少测试不稳定性(Flakiness)的开发人员、质量保证工程师及技术负责人设计。其核心理念强调测试实际行为而非实现细节,并优先考虑高信赖度的集成测试。用户可以学习处理常见测试挑战的结构化方法,包括竞争条件的缓解与外部依赖管理。

  • 根据 Kent C. Dodds 的行为导向验证原则,编写能抵抗重构破坏的耐久性测试。

  • 采用标准化的 Arrange-Act-Assert (AAA) 或 Given-When-Then 模式以确保测试的清晰度与可维护性。

  • 实现强健的条件式轮询功能以取代不可靠的随机超时等待,有效消除异步代码中的不稳定性因素。

  • 进阶 Mocking 策略,包括“不要 Mock 你未拥有的代码”原则,并区分受控与非受控依赖以优化测试设计。

  • 清晰识别测试反模式,例如测试 Mock 本身的存在、不完整的 Mock 结构,以及在生产代码中加入测试专用方法。

  • 适用于代码审查 (Pull Request) 或测试架构设计阶段。

  • 请使用提供的 waitFor 工具函数处理异步事件或状态变更,而非使用写死的 sleep 计时器。

  • 在决定 Mock 策略前,务必评估依赖项是“受控”(内部数据库/文件系统)还是“非受控”(外部 API/服务)。

  • 优先采取集成测试以在开发生命周期中获得最佳的信心与成本比例。

  • 对照测试反模式清单进行审核,确保验证的是真实的软件行为,而非测试基础设施的内部细节。

仓库统计

Star 数
178
Fork 数
23
Open Issue 数
1
主要语言
Python
默认分支
main
同步状态
空闲
最近同步时间
2026年5月1日 08:22
在 GitHub 查看