小编Gaa*_*god的帖子

开关的eclemma分支覆盖范围:19个错过了7个

我有这个交换机系统,我正在使用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;
        }
Run Code Online (Sandbox Code Playgroud)

我使用简单的JUnit测试来解决这些问题.仍然是eclemma将此标记为黄色并且说"错过了19个分支中的7个".我想说只有7种方法可以通过这个开关系统(6个个案+所有未定义).

我尝试在堆栈溢出时搜索类似的问题.他们中的一些人使用if/else进行完全覆盖的解决方案.我不确定这是否是获得此保险的唯一方法.

任何人都可以解释所有这19个分支来自何处以及我如何测试这些剩余的7个以获得100%的分支覆盖率?

java testing code-coverage switch-statement eclemma

26
推荐指数
1
解决办法
1万
查看次数

标签 统计

code-coverage ×1

eclemma ×1

java ×1

switch-statement ×1

testing ×1