Я пытаюсь использовать verify в модульном тесте, чтобы убедиться, что метод вызывается для объекта, который отслеживается.Я могу убедиться, что метод на самом деле вызывается с помощью оператора журнала и проходит через код с помощью отладчика.все же вызов verify (Object, 1) .method () сообщает «Требуется, но не вызывается:» Также с утверждением uncommented mockTransferService.getCurrentTask () возвращает ноль, в то время как я снова могу проверить с помощью отладчика, что он устанавливается.Тестовый код показан ниже
@Test
public void testInitialPermitGranted() throws Exception {
Config mockConfig = mock(Config.class);
doReturn(path).when(mockConfig).getRequiredStringProperty(Config.WORK_DIR);
mockTransferService = spy(new TransferServiceImpl(mockServiceConnection, mockConfig,
Executors.newSingleThreadScheduledExecutor()));
doReturn(true).when(mockTransferService).doStartTransfer(any());
mockTransferService.enqueueTransfer(mockTransferTask);
Thread.sleep(1000);
//Assert.assertEquals(mockTransferTask, mockTransferService.getCurrentTask());
verify(mockTransferService,times(1)).startTransfer(any());
}
}
Метод, который тестируется, показан ниже
@Override
public boolean startTransfer(TransferTask transferTask) {
LOG.debug("StartTransferCalled");
setCurrentTask(transferTask);
return doStartTransfer(transferTask);
}
Я довольно плохо знаком с mockito и, очевидно, что-то упустил.