【发布时间】:2021-03-26 03:32:45
【问题描述】:
我尝试使用 Mockito 测试以下 Spring Service 类:
@Service
public class ObjectExportService {
@Autowired
protected List<SecuredService<? extends SecuredObject>> securedServices;
public void doStuff() {
for(int i = 0; i < this.securedServices.size(); i++){
SecuredService<? extends SecuredObject> securedSrv = this.securedServices.get(i);
//this access works
}
for (SecuredService<? extends SecuredObject> securedSrv : this.securedServices) { //this access does not work
}
}
}
这是我对该服务的测试类:
@RunWith(MockitoJUnitRunner.class)
public class ObjectExportServiceTest {
@InjectMocks
private ObjectExportService objectExportService;
@Mock
protected List<SecuredService<? extends SecuredObject>> securedServices;
@Test
public void testDoStuff(){
objectExportService.doStuff();
Assert.assertTrue(true);
}
}
当我运行测试时,我得到一个 NullpointerException,但仅在 for-each 循环中。
首先我假设是this线程中描述的类似问题:
我已经模拟了列表,因此需要模拟 iterator() 调用。
该线程中提供的解决方案对我不起作用,因为我实际上是在自动装配一个列表。
【问题讨论】: