I am getting the following error during the run of Junit tests.
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)
The reason I found while searching was that there might be multiple versions of mockito being used and it seems to be true.
gradle :commons:dependencies | grep mock
returns following
\--- 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 (*)
Why powermock 1.7.4 is recursively depending on mockito 1.10.19 and 2.8.9?