我有一个返回车辆清单的方法。像这样:
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,因为Vehicle不存在。 当我有旧时尚for循环它通过测试,但现在我用forEach循环替换我在测试中得到错误。 那么我该如何模拟对象Vehicle?
答案 0 :(得分:2)
对于每个循环使用给定iterator()
的{{1}}方法。然后使用以这种方式获得的迭代器来迭代集合。不幸的是,这个模拟列表的方法返回null,这会导致Iterable
。要用于每个循环语法,您还必须将NullPointerException
方法绑定到结果。