Initially I was using only Mockito in junits so I was using SpringJUnit4ClassRunner.class in @RunWith annotation ie
@RunWith(SpringJUnit4ClassRunner.class)
I know this thread is old, but it's good to add that since 2014 and this pull request, you can use the @PowerMockRunnerDelegate annotation to "delegate" the run context to SpringJUnit4ClassRunner (or any other runner really).
Above code would look like :
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
@PrepareForTest(X.class);
public class MyTest {
// Tests goes here
...
}
With this annotation, you don't need the PowerMock rule anymore !
You have to use the PowerMockRule.
@RunWith(SpringJUnit4ClassRunner.class)
@PrepareForTest(X.class)
public class MyTest {
@Rule
public PowerMockRule rule = new PowerMockRule();
// Tests goes here
...
}
For a full example of the Spring Integration Test with PowerMock and Mockito, you could checkout this maven project.
svn co http://powermock.googlecode.com/svn/tags/powermock-1.4.12/examples/spring-mockito/
cd spring-mockito/
Look at the dependecies to powermock.
less pom.xml
and then run the test
mvn test
and you should get the following test results :
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0