Setting up Powemockito for static mocking

Ubunfu picture Ubunfu · Sep 27, 2013 · Viewed 26.6k times · Source

I would like to make use of Powermock with Mockito to mock some static method calls. I have followed instructions and examples from SO as well as the PowerMock Getting Started and MockStatic pages as best I can, but I am yet to complete a mockStatic() call.

When I call mockStatic(foo.class) from my test class, I'm given the excception:

java.lang.NoClassDefFoundError: org/Mockito/mock/MockName
at org.powermock.api.mockito.PowerMockito.mockStatic(PowerMockito.java:70)
at ...my test class method call...

I'm sure this is a setup problem, as I have been finding the terminology used for setting this up to be pretty confusing. I did grab the Mockito Zip from the PowerMock downloads. In Eclipse (3.5.2) I opened the project properties and added all of the Jars to the build path. I also tried adding the entire unzipped powermockito folder to my environment vars classpath, and then just the powermockito jar specifically when that didn't work out.

I have these annotationsat the class-level of my test class as well, per the powermock instructions:

@RunWith(PowerMockRunner.class)
@PrepareForTest(ApplicationContextLoader.class)

Also these powermock-specific imports:

import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

To those of you who have used PowerMockito before, even just a pointer in the right direction, or something to check would be really helpful. I'm struggling to see how my setup differs from that of posts I have seen using - from what I can tell - the same syntax.

Answer

Devs picture Devs · Apr 15, 2014

Probably, the versions of Powermock and Mockito are not compatible. Fix that and it won't be a n issue anymore.

Mockito                     PowerMock
1.10.8+                     1.6.2+
1.9.5-rc1 - 1.9.5           1.5.0 - 1.5.6
1.9.0-rc1 & 1.9.0           1.4.10 - 1.4.12
1.8.5                       1.3.9 to 1.4.9
1.8.4                       1.3.7 & 1.3.8 
1.8.3                       1.3.6
1.8.1 & 1.8.2               1.3.5
1.8                         1.3
1.7                         1.2.5

See: https://github.com/powermock/powermock/wiki/Mockito#supported-versions