gpt4 book ai didi

java - 服务类方法的代码覆盖率

转载 作者:行者123 更新时间:2023-11-30 06:03:30 24 4
gpt4 key购买 nike

我正在尝试使用mockito 对服务类的方法进行代码覆盖。我是mockito新手,尝试模拟对服务方法的调用,但代码覆盖率为0。我不确定我是否可以模拟调用,或者我是否可以使用这个特定的方法。如果您有任何建议,请让我知道。代码:

public List<Something> getTrackerData(String startDay,List<Something> someList,  boolean check,String name)
{
//filled with many if else checks
}

这是我想要进行覆盖的方法。

@InjectMocks 私有(private) TrackerService trackerService;

@Before
public void setup(){
MockitoAnnotations.initMocks(this);
}

@Test
public void test01()
{
Something ttd =new Something();
ttd.setCoverageSubType("None");
ttd.setCoveredAmount("1.0");
List<Something> list = new ArrayList<>();
list.add(ttd);

List<Something > newlist = mock(List.class);
// when(trackerService.getTrackerData("", newlist, false, "")).
// thenReturn(list);

resultList = trackerService.getTrackerData(anyString(), anyList(), anyBoolean(), anyString());

}

这是我写的测试。我意识到 when 和 Mockito.verify() 仅适用于模拟依赖项。但在这里我没有任何依赖来模拟。所以,问题是我可以使用 Mockito stub 参数模拟对 trackerService.getTrackerData() 的调用,还是必须仅使用实际参数测试该方法?

最佳答案

TrackerService 已在使用 InjectMocks。所以你只需使用 Mockito.when() 即可。

List<Something> result = new ArrayList();
//populate list
Mockito.when(trackerService.getTrackerData(anyString(), anyList(), anyBoolean(), anyString())).thenReturn(result);

关于java - 服务类方法的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51815377/

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