我在 IntelliJ IDEA 中使用“跟踪”(使用默认的 Intellij 覆盖工具)运行代码覆盖率的 Java 单元测试。我有一个 if 语句总是报告“部分覆盖”,即使使用了两个分支:
其他 if 语句是绿色的,其中测试了两条路径,并且我尝试使用方法调用的结果提取变量。谁能解释为什么这一行被报告为部分而不是完整?
答案 0 :(得分:1)
如果您有复合条件并且未执行所有条款,则会发生部分覆盖。例如
if (isEmptyString(location) && isEmptyString(name)) {
return false;
}
如果 isEmptyString(location)
在所有测试用例中都返回 false
,则永远不会执行 isEmptyString(name)
。因此“部分覆盖”。
您的代码不是这种情况,因此我认为这是覆盖工具中的一个错误。