为什么 Jacoco 将我的 for 循环标记为部分覆盖?
Why is Jacoco flagging my for loop as partially covered?
在一个带有 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 循环只是带有迭代器和 iter.hasNext();
测试的 for 循环的语法糖。在您的测试用例中,您只会看到 returns true
.
的情况
在一个带有 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 循环只是带有迭代器和 iter.hasNext();
测试的 for 循环的语法糖。在您的测试用例中,您只会看到 returns true
.