Eclemma说4个分支中有1个没有覆盖,但它是哪个分支?

2022-09-01 15:31:12

有没有一种简单的方法来判断我错过了哪个分支?即我有一些这样的代码:

if (x || y) {
    // do stuff
}

在覆盖突出显示中,Eclipse中有一个黄点,上面写着:

错过4个分支机构中的1个

但我想知道哪个分支丢失了。


答案 1

什么可以和是什么?xy

  • true || truetrue(由于 JVM 优化而未涵盖:如果第一个条件为 ,则由于短路评估,第二个条件将不会被评估)true
  • false || true真的
  • true || false真的
  • false || false

答案 2

有一个非常简单的解决方法 - 只需将每个逻辑谓词放在单独的行上,如下所示:

if (x 
    || y) {
    System.out.println("BRANCH: " + x + ", " + y);
    // Do stuff
}

现在,当您运行分析时,标记应直接指向错过的分支。添加覆盖率后,可以以正确的方式重新设置代码的格式。


推荐