测试策略
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/testing-strategies-9p7d。
技能介绍
先解决什么问题
测试经常在跑,但回归仍然漏掉边界:测试按方法或文件堆叠,彼此共享状态,执行顺序一变就失败;为了凑覆盖率去测 getter/setter,反而漏掉算法和接口契约;快照被无脑更新,flaky test 被跳过而不是找根因。
技能如何工作
它把测试组织回到行为上:
- 用 behavior-first 命名,而不是复制方法名。
- 每个用例遵循
Arrange-Act-Assert,独立且自包含。 - 契约测试用
Pact校验 consumer 期望与 provider 能力,双方不必同时在线。 - 小输出使用 inline snapshots,并在 code review 中仔细看 diff。
- 算法类逻辑用 property-based testing 覆盖不变量。
- 集成测试用
test containers拉起真实依赖。 - Test doubles 只做最小替身,保持 behavior-focused。
适用边界与注意点
这套策略不是特定框架的魔法,而是 review 和编写测试时的检查清单。Pact 需要你认真维护 consumer/provider 契约;snapshot 需要 review 防止把意外变更固化;property tests 需要清晰的 invariants;containers 会拖慢本地和 CI,要按测试收益取舍。CI 应把 flaky 检测视为失败,而不是忽略。
使用场景
- 重构跨服务接口后,用 Pact 契约测试确认消费者期望仍与提供方能力一致
- 为算法模块补测时,用属性测试覆盖边界情况与核心不变量
- 排查 CI 偶发失败时,按清单检查测试是否共享状态或依赖执行顺序
- 代码评审遇到快照变更时,逐行查看 diff 而不是直接重新生成
适合人员
- 后端工程师:正在拆分微服务,需要在双方服务不同时在线时验证接口契约
- 测试工程师:CI 中 flaky test 频繁出现,需要按检查清单定位根因并修复
- 全栈开发者:代码评审常被快照 diff 淹没,需要判断哪些变更值得仔细复核
- 平台工程师:负责搭建集成测试环境,希望用 test containers 引入真实依赖