gpt4 book ai didi

java - 为 void 方法编写一个模拟测试

转载 作者:行者123 更新时间:2023-12-02 11:42:18 25 4
gpt4 key购买 nike

我正在尝试为一个写得非常糟糕的方法编写一个测试用例,下面是该方法的实现:

public void processData(){
DB.connectToDB1();
List rawData = DB.getRawData();
List processedData = new List();
for (Object obj : rawData){
//pass through filter
if(obj.passesFilter){
processedData.add(obj);
}
}
DB.connectToDB2();
DB.insertProcessedData(processedData);
}

我想测试过滤规则是否正常工作,我应该采取什么方法?

最佳答案

您应该模拟DB并在getRawData()上返回您想要处理的数据列表:

Mockito.when(DB.getRawData()).thenReturn(myList);

然后使用 Mockito.verify 通过使用 Captor< 来检查应通过过滤器的所有 rawData 是否都在 processedData 列表中,它可以捕获传递给insertProcessedData的数据:

@Captor
ArgumentCaptor<String> listCaptor;

Mockit.verify(DB).insertProcessedData(listCaptor.capture());
List<Object> processedData = listCaptor.getValue();

然后您可以检查 processedData 是否有您需要的内容(例如预期大小,...)。

关于java - 为 void 方法编写一个模拟测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48464078/

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