第 04 讲 · 用 AI 补单测:覆盖率从 0 到 60% 的可控流程
先说一次我翻车的经历
去年年底,我接了个"老项目补单测"的活。项目是一个跑了六年的订单中心,Spring Boot 2.3,四十二万行,单测覆盖率 0.4%——只有三个测试,其中两个还是脚手架生成的contextLoads。
我当时的做法很朴素:把OrderService整个类丢给模型,说"帮我生成单元测试"。模型很配合,吐出来 380 行测试代码。我兴冲冲粘进项目,一跑——编译错误 17 个。
修完编译错误,跑起来红灯 9 个。再修,最后剩 21 个测试方法全绿,JaCoCo(Java 代码覆盖率工具)报告显示这个包的行覆盖率从 0% 涨到 64%。
我当时觉得这事成了。直到两周后,线上炸了一个空指针,炸的位置正好在那个"覆盖率 64%"的cancelOrder方法里。我打开测试一看,那 21 个方法里有 11 个长这样:
@TestvoidtestCancelOrder(