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