-
前言
- 大型后端不是“靠开发能力解决一切”
- 而是靠 “可测试性设计” 提升演化速度
- 测试不是 QA 的事,是系统设计的一部分
-
可测试性的判断标准
- 业务逻辑可隔离
- 依赖层可 mock
- 状态变迁可观测
- 回放可复现
- 环境可一致
-
后端典型可测试性破坏因素
- 直接依赖远程服务
- 直接 new 客户端
- 状态散落在各种对象里
- 逻辑写在 Controller 里
-
可测试性工程化设计方案
- Domain Driven API + 抽象 adapter
- 业务逻辑无 IO(IO 在 Anti-corruption layer)
- Mockable Client
- Testable Event / State 设计
-
Case:审批流状态机重构前 vs 重构后
- 重构后的状态迁移测试可以100%自动化
-
总结
- 业务越复杂越要可测试
- 否则系统不可演化、不可 refactor