在一个带有 for 循环和 if 语句的简单方法中,Jacoco 将 for 循环标记为部分覆盖。为什么是这样?
这个问题似乎相关,但我不知道如何将它应用到我的情况:https://github.com/jacoco/jacoco/issues/370
我怀疑这与单独的“if”语句有关。
MRE:
public SomeClass test(){
SomeClass find = new SomeClass();
ArrayList <String> myArrayList = new ArrayList<>();
myArrayList.add("A");
myArrayList.add("B");
for(String s : myArrayList){
if(s.equals("B")){break;}
}
return find;
}
相应的测试:
@Test
public void testTest(){
SomeClass find = new SomeClass();
find.test();
}
示例代码将显示带有“for”循环的行被部分覆盖,并且每隔一行被覆盖。我希望它能显示每一行。
最佳答案
可能是因为您没有测试找不到值并且 for 循环完成的场景。 foreach 循环只是带有迭代器的 for 循环的语法糖和对 iter.hasNext();
的测试。在您的测试用例中,您只会看到返回 true
的情况。
关于java - 为什么 Jacoco 将我的 for 循环标记为部分覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57999251/