很多人觉得写单测是浪费时间,觉得"我的代码逻辑很清楚,不需要测试"。但真正经历过线上事故的人都知道——每一行没测到的代码,都是一颗定时炸弹。这篇文章从 Mock 框架讲到 TDD,帮你建立起扎实的单测思维。
一、Mock:给测试造一个"假人"
1.1 什么是 Mock
你见过汽车碰撞测试吗?车里坐的不是真人,而是仿真假人。假人的体重、关节、组织强度都和真人一样,但不会受伤。而且为了测试的全面性,还要用到各种类型的假人——成年人、老人、小孩、男性、女性。
单元测试中的 Mock 就是这个假人。当你要测试的代码依赖了外部服务(RPC 接口、数据库、消息队列),你不可能每次跑测试都真的去调用它们——太慢、不稳定、还会产生脏数据。而且有些异常场景(比如网络超时、服务不可用)在真实环境中很难复现。
大约 12 分钟