背景 上周联调一个订单状态机,本地用 Redis 做幂等缓存。单元测试里我习惯用 Mockito 把 RedisTemplate 整个 mock 掉,结果上线后在缓存过期那块直接炸了。mock 根本没覆盖 TTL 和原子自增的真实语义,自测全绿却带着隐患上了线。 复盘那次事故,根因是我们对"缓存是否
一次发布把下单接口打挂了,CI 里却全是绿的 4 月一次常规发布后,下单接口 5xx 飙到 12%。回看 CI 流水线,单元测试全绿。问题出在:单元测试只覆盖了方法内部逻辑,没人验证"接口契约"本身——前端传的字段名改了,后端字段名也跟着改,但两边没对齐,网关层反序列化直接失败。 这事之后我把接口自
我给一个祖传方法补单测,改到怀疑人生 9 月初,师兄让我给订单模块的几个核心方法补单元测试,说是要接入 SonarQube 看覆盖率。我挑了个"看起来最简单"的方法开工,然后就掉坑里了。 方法长这样: @Service public class OrderService { public