Java 为什么Jacoco将我的for循环标记为部分覆盖?
在带有for循环和if语句的简单方法中,Jacoco将for循环标记为部分覆盖。为什么会这样 这个问题似乎相关,但我不知道如何将其应用于我的情况: 我怀疑这与单独的“如果”声明有关 MRE:Java 为什么Jacoco将我的for循环标记为部分覆盖?,java,unit-testing,testing,jacoco,test-coverage,Java,Unit Testing,Testing,Jacoco,Test Coverage,在带有for循环和if语句的简单方法中,Jacoco将for循环标记为部分覆盖。为什么会这样 这个问题似乎相关,但我不知道如何将其应用于我的情况: 我怀疑这与单独的“如果”声明有关 MRE: 示例代码将显示部分覆盖了带有“for”循环的行,并且每隔一行覆盖一次。我希望它能显示每一行内容。可能是因为您没有测试未找到值且for循环完成的场景。foreach循环只是带有迭代器的for循环和对iter.hasNext()的测试的语法糖。在您的测试用例中,您只会看到返回true的情况,这可能是因为您没有测
示例代码将显示部分覆盖了带有“for”循环的行,并且每隔一行覆盖一次。我希望它能显示每一行内容。可能是因为您没有测试未找到值且for循环完成的场景。foreach循环只是带有迭代器的for循环和对
iter.hasNext()的测试的语法糖代码>。在您的测试用例中,您只会看到返回true
的情况,这可能是因为您没有测试未找到值且for循环完成的场景。foreach循环只是带有迭代器的for循环和对iter.hasNext()的测试的语法糖代码>。在您的测试用例中,您只看到返回true
的情况。正是这样!我从未测试过循环完成的条件。非常感谢。如果你给我一个答复,我会接受的。
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();
}