gpt4 book ai didi

java - 为什么 Jacoco 将我的 for 循环标记为部分覆盖?

转载 作者:行者123 更新时间:2023-11-28 20:34:53 25 4
gpt4 key购买 nike

在一个带有 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com