Рубрики
Без рубрики

Имитируйте статические методы с помощью модульного тестирования Mockito – Java

Один из самых неприятных моментов, когда я выполняю модульные тесты на Java, – это невозможность издеваться… Помеченный как java, todayilearned.

Один из самых неприятных моментов, когда я выполняю модульные тесты на Java, – это невозможность имитировать статические методы.

Конечно, в течение долгого времени у нас был PowerMock. Но, начиная с JUnit 5, PowerMock не был совместим, и мы не смогли продолжить работу с ним.

Но теперь у нас есть эта функция, включенная в Mockito!

Зависимости

Во-первых, вы должны добавить встроенную библиотеку mockito . (Вы можете использовать любую версию до 3.4.0)

Вот пример с Maven


    org.mockito
    mockito-inline
    3.9.0
    test

Письменный тест

Чтобы имитировать статический метод, вы должны создать mock Static класса со статическим методом и объявить событие, которое вы хотите применить к своему макету.

пример

@Test
public void test() {

try (MockedStatic loggerFactoryMock = Mockito.mockStatic(LoggerFactory.class)) {
            loggerFactoryMock.when(() -> LoggerFactory.getLogger(any(Class.class))).thenReturn(loggerMock);

...
            verify(loggerMock, times(1)).error("Err message test");
...
        }
    }

Затем вам просто нужно запустить свои тесты!

Я надеюсь, что это поможет вам!

Оригинал: “https://dev.to/adaendra/mock-static-methods-with-mockito-java-unit-testing-189”