如果foreach总是完成休息,如何制作100%覆盖的分支

时间:2015-08-12 08:37:28

标签: java jacoco

所以我没有什么问题,我想在JaCoCo上做100%覆盖的分支,但是我的for-each中有2个错过分支中的1个。

以下是我的代码(lettersGroups["ABC", "DEF", "GHI", ..., "VWX", "YZ"]的列表。函数returnLettersGroups在3个字母上划分字母并返回列表。):

List<String> lettersGroups = returnLettersGroups();

for (Strin nameOfCountry : listOfCountries) {
        String firstLetter = StringUtils.getFirstLetter(nameOfCountry);
        for (String oneGroup : lettersGroups) { //Here I have "1 of 2 branches missed."
            if (oneGroup.contains(firstLetter.toUpperCase())) {
                //Do something.
                break;
            }
        }
}

1 个答案:

答案 0 :(得分:3)

当未执行break时,错过的分支是内循环的正常终止。更具体地说,从iterator.hasNext()创建的隐式迭代器lettersGroups的调用始终在代码中返回true,并且在它返回false时没有测试该情况。如果您的listOfCountries所在国家/地区不以任何拉丁字母开头,则可以覆盖此分支。可能在你的情况下覆盖这个分支是没有意义的。虽然一般来说覆盖分支的数量对于测试质量来说是一个很好的指标,但实现100%覆盖通常是浪费时间。