Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not initialize plugin: interface org.mockito.plugins.MockMaker

Tags:

mockito

If you are using powermock ensure that your dependencies point to:

org.powermock:powermock-api-mockito2

instead of

org.powermock:powermock-api-mockito

Missing reference to:

  • byte-buddy-1.6.5.jar
  • byte-buddy-agent-1.6.5.jar
  • objenesis-2.5.jar

Since Mockito 2.0.2 beta, Mockito-core has dependencies.


I had Byte Buddy on classpath (is transitive dep of Mockito 2.8.9) and still got the exception. Reason for me was that I ran the Unit tests with JRE instead of JDK. Switching to JDK worked for me.


This problem with Mockito2 occurs if you enable the option to mock final classes.

This means when in your test/resources/mockito-extensions directory you have the file called org.mockito.plugins.MockMaker with the following content mock-maker-inline.

In that case byte-buddy, which is a transitive dependency for mockito-core, has the problem to attach own agent to the java process. But the problem occurs only when you use JRE.

The solution would be either:

  • Use JDK instead of JRE

or

  • add -javaagent:byte-buddy-agent-*.jar as a VM option

I had the same problem - same stacktrace appear in my log. It is typically problem with project setup... OR
The problem can be in the bytebuddys JARs if these were not downloaded correctly.
When I try to check class ClassLoadingStrategy manually then I get zip error.

In that case it is just enough manually delete the Byte Buddy from local maven directory, usually located at:
{home}/.m2/repository/net/bytebuddy/

The next try to run project or test they will be downloaded again and should work as expected.

Unfortunatelly common Java ClassLoader faces in the same way when class or jar missing as well as the jar is corrupted.