Mockito UnfinishedStubbingException
我是Mockito的新手,我尝试过研究这个例外,但我还没有找到具体的答案。当我同时使用两个模拟时,它发生在我的代码中,这意味着我通过一个模拟的构造函数,另一个模拟来给出。这样:
...
OperationNode child = getNode(Operation.ADD);
child.insertNode(getConstantNode(getIntegerValue(2));
...
private ConstantNode getConstantNode(NumericalValue value){
ConstantNode node = Mockito.mock(ConstantNode.class);
Mockito.when(node.evaluate()).thenReturn(value);
Mockito.when(node.toString()).thenReturn(value.toString());
return node;
}
private IntegerValue getIntegerValue(int number) {
IntegerValue integerValue = Mockito.mock(IntegerValue.class);
Mockito.when(integerValue.getValue()).thenReturn(number);
Mockito.when(integerValue.toString()).thenReturn(Integer.toString(number));
return integerValue;
}
在其中一个论坛中,我读到关于不通过另一个模拟的构造函数发送模拟,因为Mockito可能会与模拟调用混淆,所以我尝试了以下方法:
NumericalValue value = getIntegerValue(2);
child.insertNode(getConstantNode(value));
但无济于事。我确保只调用方法 和,因为这些是该类具有的唯一方法。我不明白发生了什么。toString()
getValue()
我还尝试单独使用模拟,看看我是否做错了什么:
child.insertNode(new ConstantNode(getIntegerValue(2)));
这很完美。
child.insertNode(getConstantNode(new IntegerValue(2)));
这也很好。