JavaScript项目中统计分支覆盖率需用Jest或nyc显式启用分支覆盖,编写覆盖所有逻辑分支的测试用例,在HTML报告中通过颜色和数字(如1/2)识别分支覆盖情况,并可用Codecov等工具实现多分支差异对比。

直接看覆盖率报告里的“未点亮区域”,重点盯 Branch(分支)那一栏。
运行覆盖率并打开报告
在项目根目录执行:
npx jest --coverage
等命令跑完,打开生成的 coverage/lcov-report/index.html。首页默认按文件排序,点进具体文件,就能看到带颜色标记的源码行。
识别真正的分支缺口
别只看“红色”行,要结合代码结构判断哪些是真实未覆盖的分支:
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
-
if/else、switch/case:检查 else 分支、default 分支是否被触发;比如
if (x > 0) { ... } else { throw new Error() },只测了x > 0就算漏了错误路径 -
三元表达式:
a ? b : c两边都要有测试用例,尤其c部分常被忽略 -
逻辑运算符短路:
a && b()要分别测a为 false 和 true 的情况,否则b()永远不执行 -
可选链与空值合并:
obj?.prop ?? 'default'需覆盖obj为 null/undefined 和有值两种场景
补全测试时注意什么
补分支不是为了把数字刷高,而是验证业务逻辑是否经得起各种输入:
- 对每个
if条件,构造明确让它走 false 分支的输入(比如传0、null、'') - 避免“伪覆盖”:比如用
jest.mock拦截了某个方法,导致本该进else的逻辑根本没运行,这不算真正覆盖 - 关注 throw 和 return 提前退出的分支,它们往往对应关键错误处理或守卫逻辑

















