Ich bin neu in Mockito, ich habe versucht, in diese Ausnahme zu suchen, aber ich habe keine konkrete Antwort gefunden. Es passiert in meinem Code, wenn ich zwei Mocks zusammen benutze, was bedeutet, dass ich durch den Konstruktor einen Mock, einen weiteren Mock gebe. Wie so:Mockito UnfinishedStubbingException
...
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;
}
In einem der Foren las ich über keinen Mock durch einen Konstruktor eines anderen Mock senden, da Mockito könnte mit den mock Anrufe verwirrt, so habe ich versucht, die folgenden:
NumericalValue value = getIntegerValue(2);
child.insertNode(getConstantNode(value));
Aber ohne Erfolg. Ich stelle sicher, dass nur die Methoden toString()
und getValue()
aufgerufen werden, da dies die einzigen Methoden der Klasse sind. Ich verstehe nicht, was los ist.
Ich habe versucht, auch separat die Mocks verwenden, um zu sehen, ob ich etwas falsch gemacht haben:
child.insertNode(new ConstantNode(getIntegerValue(2)));
, die perfekt funktioniert.
child.insertNode(getConstantNode(new IntegerValue(2)));
Das funktioniert auch gut.
bekanntes Problem 'https: //code.google.com/p/mockito/issues/detail? Id = 53' –
Anklickbarer Link: https://code.google.com/p/mockito/issues/detail? id = 53 –