gpt4 book ai didi

java - Mockito - 方法内的模拟对象

转载 作者:行者123 更新时间:2023-12-02 06:59:23 26 4
gpt4 key购买 nike

我有一个返回车辆列表的方法。像这样:

 public List<Vehicle> getVehicles() {

List<Vehicle> vehicles=vehicleDAO.getAllVehicles();

for (Vehicle v : vehicles){//NullPointerException
//some bussines logic...
}
return vehicles;

}

这是我的测试:

@Test
public void testShowVehicles() {
when(vehicleDAO.getAllVehicles()).thenReturn(listVehiclesMock);
List<Vehicle> vehicles= service.getVehicles();//NullPointerException
assertEquals(listVehicleMock, vehicles);
}

当我运行它时,我得到 NullPointerException 因为车辆不存在。当我使用旧式 for 循环时,它通过了测试,但现在我用 forEach 循环替换,我在测试中遇到错误。那么我该如何模拟 Vehicle 对象呢?

最佳答案

对于每个循环,都使用给定Iterableiterator() 方法。然后使用以这种方式获得的迭代器来迭代集合。不幸的是,模拟列表的这个方法返回 null,这会导致 NullPointerException。要使用每个循环语法,您还必须将 iterator() 方法绑定(bind)到结果。

关于java - Mockito - 方法内的模拟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16870895/

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