Почему org.powermock: powermock-api-mockito: 1.7.4 зависит от двух версий mockito-core? - PullRequest
1 голос
/ 13 февраля 2020

Я получаю следующую ошибку во время выполнения тестов Junit.

java.lang.NoClassDefFoundError: org/mockito/cglib/proxy/MethodInterceptor

    at org.powermock.api.mockito.PowerMockito.mock(PowerMockito.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

При поиске я обнаружил, что возможно использование нескольких версий mockito, и это похоже на правду.

gradle :commons:dependencies | grep mock

возвращает следующее

\--- org.powermock:powermock-api-mockito:1.7.4
     +--- org.powermock:powermock-api-mockito-common:1.7.4
     |    +--- org.powermock:powermock-api-support:1.7.4
     |    |    +--- org.powermock:powermock-reflect:1.7.4
     |    |    \--- org.powermock:powermock-core:1.7.4
     |    |         +--- org.powermock:powermock-reflect:1.7.4 (*)
     |    |         \--- org.mockito:mockito-core:2.8.9 (*)
     |    \--- org.mockito:mockito-core:2.8.9 (*)
     \--- org.mockito:mockito-core:1.10.19 -> 2.8.9 (*)

Почему powermock 1.7.4 рекурсивно зависит от mockito 1.10.19 и 2.8.9?

1 Ответ

0 голосов
/ 13 февраля 2020

org.powermock:powermock-api-mockito:1.7.4 скомпилировано с версией mockito 1.10.19 (1)

org.powermock:powermock-api-mockito-common:1.7.4 скомпилировано как с 1.10.19, так и с 2.8.9 и обеспечивает зависимость mockito-core (2)

org.powermock:powermock-core:1.7.4 скомпилировано с 2.8.9 (3)

Существует путь обновления для версии с ядром mockito. 1.10.19 до последней версии (в настоящее время 3.2.4).

Gradle обнаруживает, что существует конфликт, и минимальная требуемая версия - 2.8.9. Вот что вы видите на выходе. (Может быть, этот вопрос поможет вам понять синтаксис.)


PowerMock 1.7.x требуется версия mockito по крайней мере 2.8.9 (4)

Однако использование Mockito 2.8.9 вместе с powermock требует от вас powermock-api-mockito2, поэтому измените это в конфигурации вашего gradle. (5)

...