Intellij 代码覆盖率测试中“部分”覆盖率的定义是什么?

时间:2021-03-21 06:49:30

标签: java unit-testing intellij-idea code-coverage

我在 IntelliJ IDEA 中使用“跟踪”(使用默认的 Intellij 覆盖工具)运行代码覆盖率的 Java 单元测试。我有一个 if 语句总是报告“部分覆盖”,即使使用了两个分支:

Screenshot

其他 if 语句是绿色的,其中测试了两条路径,并且我尝试使用方法调用的结果提取变量。谁能解释为什么这一行被报告为部分而不是完整?

1 个答案:

答案 0 :(得分:1)

如果您有复合条件并且未执行所有条款,则会发生部分覆盖。例如

if (isEmptyString(location) && isEmptyString(name)) {
    return false;
}

如果 isEmptyString(location) 在所有测试用例中都返回 false,则永远不会执行 isEmptyString(name)。因此“部分覆盖”。

您的代码不是这种情况,因此我认为这是覆盖工具中的一个错误。