测试策略指南
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/testing-strategies-sh-pxpeej。
技能介绍
解决哪些测试痛点
当测试套件开始膨胀,常见问题会逐渐显现:
- 测试名称只反映方法名,无法看出验证的业务行为
- 用例之间共享状态,导致必须按特定顺序执行
- 集成依赖全部 Mock,上线后仍然出现契约不一致
- 快照更新变成随手操作,审查时看不出行为变化
核心能力与关键步骤
该技能将测试策略拆成可落地的模式和检查清单:
- 测试结构:统一使用 Arrange-Act-Assert 组织测试,并按行为而非文件或方法命名
- 契约测试:使用 Pact 描述消费者与提供者的交互期望,无需双方同时运行
- 快照测试:对小输出使用 inline snapshot,并在代码审查时仔细查看
diff - 属性测试:针对算法代码验证不变式,而不是只覆盖手工挑选的样例
- 集成测试:通过 Test Containers 启动真实依赖,避免全量 Mock
- 测试替身:只使用最小且关注行为的 Test Double
适用边界与注意点
- 不要测试实现细节,而应测试外部可见行为
- 不要在测试间共享可变状态,也不要跳过
beforeEach重置 - 不要让用例依赖执行顺序
- 集成测试不应 Mock 所有真实依赖
- 不要长期忽略 flaky test,应在 CI 中让检测到的不稳定测试失败
- 不要只覆盖简单 getter/setter,而遗漏关键边界条件
使用场景
- 测试命名混乱、用例共享状态导致顺序依赖,需要按行为重写测试结构
- 消费者服务与提供者服务无法同时启动,需要用 Pact 校验 API 兼容性
- 快照在评审时被随手更新,需要建立 diff 审查流程避免掩盖回归
- 集成测试全量 Mock,需要在容器中跑真实依赖验证边界情况
适合人员
- 后端开发者:想让单元测试按 Arrange-Act-Assert 重构并减少顺序依赖
- 前端开发者:想规范快照更新流程,避免掩盖组件回归
- DevOps 工程师:需要用契约测试和测试容器保证跨服务兼容
- QA 工程师:想根据反模式清单审查测试用例质量