Я новичок в Mokito, так что, надеюсь, это простой вопрос. Я просматривал всевозможные примеры в Интернете, но мне кажется, что я могу создавать только вызовы thenReturn, которые возвращают логические значения. Я довольно запутался.
Вот мой код:
@Test
public void addSubscriptionShouldSubscribeForIsaData() throws SubscriptionException {
ParrotSubscription mockSub = mock(ParrotSubscription.class);
when(parrotPrimaryComponent.addSubscription(Mockito.any(ParrotSubscription.class))).thenReturn(mockSub);
ParrotSubscription parrotSubscription = isaComponent.addSubscription(subscription);
assertThat(parrotSubscription).isNotNull();
Кажется достаточно простым, но когда я компилирую, я получаю:
/home/sleepylight/workspace/asynchrony/sensors/sensor-isa/src/test/java/com/asynchrony/mfk/sensor/isa/IsaComponentTest.java:111: error: no suitable method found for thenReturn(ParrotSubscription)
when(parrotPrimaryComponent.addSubscription(Mockito.any(ParrotSubscription.class))).thenReturn(mockSub);
^
method OngoingStubbing.thenReturn(Boolean) is not applicable
(argument mismatch; ParrotSubscription cannot be converted to Boolean)
method OngoingStubbing.thenReturn(Boolean,Boolean...) is not applicable
(argument mismatch; ParrotSubscription cannot be converted to Boolean)
Итак, очевидно, что это не так. правильно.
Метод, который я тестирую, довольно прост.
public ParrotSubscription addSubscription(String subscriptionText) throws SubscriptionException {
try {
return primaryComponent.addSubscription(subscriptionText);
} catch (DataQueryParserException e) {
throw new SubscriptionException(e.getMessage(), e.getCause(), e.getLineNumber(), e.getStartIndex(),
e.getStopIndex());
}
}
Это просто оболочка вокруг метода addSubscription для primaryComponent, над которым я пытаюсь имитировать.
Может быть, я пропустил включение или сигнатуру функции, которую мне нужно определить? Я проверил метод min Mokito. java, и похоже, что он просто должен принимать тип generi c. Я использую mokito-core-2.18.3 , если это помогает.
Спасибо за внимание.