У меня есть класс LoggerInterceptor с InvocationContext в качестве параметра. Для этого класса я пытаюсь написать модульный тест, но я застрял на первой линии:Mockito UnfinishedStubbingException при попытке издеваться над классом
public class LoggerInterceptor{
public method log(InvocationContext context) {
String name = invocationContext.getTarget().getClass().getName();
.....
}
Мой тест выглядит следующим образом:
@Test
public void logTest() throws Exception {
LoggerInterceptor objectToTest = new LoggerInterceptor();
InvocationContext context = Mockito.mock(InvocationContext.class);
Object target = Mockito.mock(Object.class);
Mockito.when(context.getTarget()).thenReturn(target);
MockGateway.MOCK_GET_CLASS_METHOD = true;
Mockito.doReturn(objectToTest.getClass()).when(target).getClass();
MockGateway.MOCK_GET_CLASS_METHOD = false;
objectToTest.log(context);
}
Я получаю UnfinishedStubbingException когда я называю метод log (контекст).
Если я пытаюсь с:
Mockito.when(target.getClass()).thenReturn(objectToTest.getClass());
Я получаю это исключение:
The method thenReturn(Class<capture#3-of ? extends Object>) in the type OngoingStubbing<Class<capture#3-of ? extends Object>> is not applicable for the arguments (Class<capture#4-of ? extends LoggerInterceptor>)
Есть ли способ, что я могу пройти эту первую линию? Строка, которую я возвращаю, не важна.
Пожалуйста, введите код 'invocationContext.getTarget()'. – BetaRide
getTarget() - это метод в интерфейсе InvocationContext. У меня нет конкретной реализации этого метода – schmimona