Eclemma说4个分支中有1个没有覆盖,但它是哪个分支?
2022-09-01 15:31:12
有没有一种简单的方法来判断我错过了哪个分支?即我有一些这样的代码:
if (x || y) {
// do stuff
}
在覆盖突出显示中,Eclipse中有一个黄点,上面写着:
错过4个分支机构中的1个
但我想知道哪个分支丢失了。
有没有一种简单的方法来判断我错过了哪个分支?即我有一些这样的代码:
if (x || y) {
// do stuff
}
在覆盖突出显示中,Eclipse中有一个黄点,上面写着:
错过4个分支机构中的1个
但我想知道哪个分支丢失了。
什么可以和是什么?x
y
true || true
为 true(由于 JVM 优化而未涵盖:如果第一个条件为 ,则由于短路评估,第二个条件将不会被评估)true
false || true
是真的
true || false
是真的
false || false
为假
有一个非常简单的解决方法 - 只需将每个逻辑谓词放在单独的行上,如下所示:
if (x
|| y) {
System.out.println("BRANCH: " + x + ", " + y);
// Do stuff
}
现在,当您运行分析时,标记应直接指向错过的分支。添加覆盖率后,可以以正确的方式重新设置代码的格式。