Как замокать статический метод FileUtils.copyURLToFile() в Junit 5?

У меня есть метод, в котором я обращаюсь к статическому методу:

File file = new File(UUID.randomUUID().toString());
        try {
            FileUtils.copyURLToFile(new URL(faceSetVisitorDto.getPhotoLink()), file);
        } catch (IOException ex) {
            log.error(ex.getMessage(), ex);
            return;
        }

Подскажите пожалуйста, как можно замокать метод FileUtils.copyURLToFile() в Junit 5


Ответы (1 шт):

Автор решения: Stan

Для этого потребуется mockito-inline, для gradle - testImplementation 'org.mockito:mockito-inline:3.6.0' и mockito должен быть >= 3.4.0

Ну и сам кусок теста:

try (MockedStatic mocked = mockStatic(FileUtils.class)) {
    mocked.when(FileUtils::copyURLToFile).thenReturn("То что нужно");
    mocked.when(() -> FileUtils.copyURLToFile(new URL(faceSetVisitorDto.getPhotoLink()), file)).thenReturn("То что нужно");

    assertEquals("То что нужно", FileUtils.copyURLToFile(new URL(faceSetVisitorDto.getPhotoLink()), file));
}

Вроде достаточно наглядно

→ Ссылка