使用Jacoco检测存在6分支中1分支未覆盖的问题求助
分析与解决方案
你的condition方法逻辑表达式可拆解为 A && (B || C),其中:
- A =
"ABC".equalsIgnoreCase(x) - B =
y - C =
ONE.equals(z)
Jacoco统计的6个分支对应:
A的true/false分支(2个)- 当
A为true时,B的true/false分支(2个) - 当
A为true且B为false时,C的true/false分支(2个)
现有测试用例遗漏了A=true、B=false、C=true的场景:即x="ABC",y=false,z="1"的情况。当前仅覆盖了A=true、B=false、C=false的路径,未触发C=true的分支;而B=true时因短路或特性,C的分支不会执行,属于正常情况,但C=true的分支必须在B=false时被覆盖。
补全测试用例
添加以下测试方法即可覆盖剩余分支:
@Test public void testCondition_xIsABC_yFalse_zEqualsOne() { assertTrue(Testing.condition("ABC", false, "1")); }
内容的提问来源于stack exchange,提问作者PAA
相关产品推荐
相关产品推荐

