Я новичок в Mockito, я попытался изучить это исключение, но я не нашел конкретного ответа. Это происходит в моем коде, когда я использую два макета вместе, что означает, что я передаю конструктор макета, еще один макет. Как так: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;
}
В одном из форумов я прочитал о не послав издеваться через конструктор другие издеваться, так как Mockito может запутаться с фиктивными вызовами, поэтому я попытался следующее:
NumericalValue value = getIntegerValue(2);
child.insertNode(getConstantNode(value));
Но безрезультатно. Я убеждаюсь, что вызываются только методы toString()
и getValue()
, потому что это единственные методы, которые имеет класс. Я не понимаю, что происходит.
Я также попытался с помощью издевается отдельно, чтобы увидеть, если я сделал что-то неправильно:
child.insertNode(new ConstantNode(getIntegerValue(2)));
Это прекрасно работает.
child.insertNode(getConstantNode(new IntegerValue(2)));
Это хорошо работает.
известная проблема 'https: //code.google.com/p/mockito/issues/detail? Id = 53' –
Ссылка на клик: https://code.google.com/p/mockito/issues/detail? id = 53 –