我数了测试套件里的断言数量,真希望我没数
来源:dev.to — 2026-08-04
📋 概述
作者在周五下午写了个约 30 行的小脚本,遍历 spec 目录统计每个测试体里的断言调用,本以为看十秒就关掉。结果发现 400 个测试里有 61 个完全不含断言——不是弱断言,而是零个,它们照常通过、照常算进他每周汇报的数字。更糟的是那 61 个还算“诚实”,真正的隐患是看似有断言的测试:把“存在性检查”伪装成验证的(只测 Java 返回了对象)、用 SoftAssert 收集却从不调用 assertAll() 的(三个断言永远不可能失败,还像更严谨)——后者在 code review 里几乎隐形,因为它看起来比硬断言更周密。
🔑 核心要点
400 个测试里 61 个零断言 ,却全部通过并计入每周汇报
“存在性检查”伪装成验证:只测对象存在 ,错的总数/条目/客户全测不出来
最隐蔽的是 SoftAssert 从不 assertAll() ——失败被收进对象后随作用域被 GC,永远不报
这类测试在 review 里几乎隐形 ,看起来比硬断言更严谨
💡 金句
Sixty-one tests that navigated somewhere, clicked some things, and ended. All of them passing. All of them counted in the number I reported to my manager every sprint.
👍 0
❤️ 点赞
👎 0
沉底
← 返回 Dev.to 首页