我有这个开关系统,我正在使用 eclemma 来测试分支覆盖率。我们需要对所有内容至少有 80% 的分支覆盖率,所以我正在尝试尽可能多地进行测试。但是,eclemma 告诉我这个交换机系统在分支覆盖方面没有经过全面测试。
pos = p.getCurrentPosition().substring(0, 1);
switch (pos) {
case "G":
goalkeepers++;
break;
case "D":
defense++;
break;
case "M":
midfield++;
break;
case "F":
offense++;
break;
case "S":
substitutes++;
break;
case "R":
reserves++;
break;
}
我使用简单的 JUnit 测试来处理每种情况。仍然 eclemma 将此标记为黄色,并表示“19 个分支中有 7 个丢失”。我想说只有 7 种方法可以通过这个开关系统(6 个单独的案例 + 全部未定义)。
我尝试搜索有关堆栈溢出的类似问题。其中一些具有使用 if/else 进行全面覆盖的解决方案。我不确定这是否是获得此覆盖的唯一方法。
任何人都可以解释所有这 19 个分支的来源以及我如何测试剩余的 7 个分支以在此 switch 案例上获得 100% 的分支覆盖率?