issues while using @RunWith Annotation and powerMock

前端 未结 2 2105
逝去的感伤
逝去的感伤 2021-01-01 21:47

Initially I was using only Mockito in junits so I was using SpringJUnit4ClassRunner.class in @RunWith annotation ie

@RunWith(SpringJUnit4ClassRunner.class)          


        
相关标签:
2条回答
  • 2021-01-01 21:56

    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 !

    0 讨论(0)
  • 2021-01-01 21:58

    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
    
    0 讨论(0)
提交回复
热议问题