关键业务测试驱动开发
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_8d36cde0/guoyiyi-v009-tdd。
技能介绍
它解决什么问题
关键业务逻辑(支付、结算、风控、订单状态机)一旦回归,代价极高,而这类代码往往又老又脆:测试只在 CI 里跑通,没人敢动。常见困境包括:先写实现再补测试,测试沦为实现的复述;测试依赖真实数据库、网络与时间,跑得慢且不稳定;需求变更时没人知道该改哪条断言。
它如何工作
围绕「测试先行」组织开发流程:先写一个会失败的测试,明确行为契约,再写让测试通过的最小实现,最后重构。要点包括:
- 契约优先:测试先描述外部可见行为,内部实现细节留给重构阶段
- 依赖隔离:数据库、第三方接口、时钟等外部依赖通过
mock或stub隔离,保证测试确定性 - 回归安全网:每个用例对应一条可追溯的业务规则,变更时由失败测试精准定位问题
- 可执行规格:测试用例本身成为可阅读的规格文档
关键步骤:梳理业务规则 → 为单个行为写失败测试 → 最小实现使其通过 → 重构并保持全绿。
适用边界
TDD 不是银弹。UI 层、探索性原型和一次性脚本的收益有限;需求频繁到测试维护成本超过其保护价值时,应权衡投入。断言写得过多反而会变成新债务——只断言业务规则关心的输出。遗留代码改造宜从边界注入测试,逐步建立安全网,而非推倒重来。
使用场景
- 支付对账逻辑改动前,先写一组失败测试锁定当前结算规则,再动手改实现
- 订单状态机迁移时,为每条状态流转补一个可追溯到业务规则的测试用例
- CI 回归测试又慢又抖,需要隔离数据库与第三方接口让结果恢复确定性
- 遗留结算代码毫无测试覆盖,想从模块边界注入测试逐步建立安全网
适合人员
- 后端工程师:负责支付、结算等关键逻辑,需要回归测试保护每次改动
- 技术负责人:推动团队落地测试先行,想为业务规则建立可执行规格
- 遗留系统维护者:面对无测试覆盖的订单状态机,想逐步补齐安全网
- 初级开发者:首次尝试 TDD,需要按步骤走完红-绿-重构的完整循环