标题:Java: NPE和单测覆盖率 出处:Felix021 时间:Mon, 14 Feb 2022 17:50:01 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?2239 内容: 切到新语言就是不断地踩坑呀。 手头有一个函数,输入一个 itemList,统计不同类型的个数,核心代码如下: int xCount = 0, yCount = 0; switch(typeParser.parse(item)) { case X: xCount++; break; case Y: yCount++; break; default: log.error("unknown type"); break; } 其他 typeParser 在遇到异常数据时会返回 null。 重构的时候,稳妥起见为它写了个单测,结果就在上述代码的第二行 NPE 了。 debug 时确认了 typeParser 和 item 都不是 null,猜测是 switch 不能处理 null ,但不熟悉 java 语法,搜了一下,果然如此。 由于 case 数量不多,就暂且改成了 if ... else if ... else 的结构。 由此可见,单测对于代码的覆盖率确实是很有帮助。 Generated by Bo-blog 2.1.0