前端知库

为什么 100% 代码覆盖率也可能漏掉严重问题?

参考答案

覆盖率记录代码是否被执行,包括语句、分支、函数等维度。执行过一行,不代表测试检查了它的正确结果;同一个分支也可能有许多未覆盖的数据边界和执行顺序。

Vitest 支持 V8 和 Istanbul 等覆盖率方案,采集方式、运行环境和版本需要配套。首先应检查统计范围是否包含应测文件,避免只统计已经被测试导入的部分,得到误导性的高数字。

以下属于测试设计建议:从业务风险选择断言,覆盖异常、边界值和状态转换,优先补真实缺陷对应的回归测试。阈值可用于阻止明显退步,但不能代替用例审查;对内部实现写大量重复断言,也可能让数字上升而维护成本更高。