【发布时间】:2020-07-08 18:43:16
【问题描述】:
在模拟存根方法以从列表返回的这一部分中,我得到了空指针异常。我的inputProvider 是一种模拟间谍方法。这个方法testCase被许多类似测试用例的测试方法调用。
private void testCase(String config, String orders, List<String> outputs){
try {
CoffeeMachineRunner machineRunner = new CoffeeMachineRunner();
when(inputProvider.getConfigInput()).thenReturn(config);
List<Order> orderList = getOrderFromJson(orders);
Iterator<Order> it = orderList.iterator();
when(inputProvider.hasNextInput()).thenAnswer(new Answer<Boolean>() {
private Iterator<Order> iterator = it;
@Override
public Boolean answer(InvocationOnMock invocation) throws Throwable {
return iterator.hasNext();
}
});
when(inputProvider.getNextInput()).thenAnswer(new Answer<Order>() {
private Iterator<Order> iterator = it;
@Override
public Order answer(InvocationOnMock invocation) throws Throwable {
return iterator.next();
}
});
machineRunner.simulate(inputProvider);
assertStringIn(outputs, outContent.toString());
} catch (Exception e) {
assertTrue(false);
}
}
基本上,我如何在两个方法调用上使用共享迭代器从这个列表中返回一个值。 hasNext 和 getNext ?
【问题讨论】: