java – 使用@RunWith Annotation和powerMock时出现问题

最初我在junits中只使用Mockito所以我在@RunWith注释中使用了SpringJUnit4ClassRunner.class,即

@RunWith(SpringJUnit4ClassRunner.class) 

由于春季依赖注入工作正常,并正在通过

@Autowired

Someservice someservice ;

但是现在,我还在其中集成了PowerMock.

所以按照doc,我已经用@RunWith注释替换了提到的类

@RunWith(PowerMockRunner.class)

但是现在,有些服务似乎是空的.有没有办法在@RunWith注释中同时使用SpringJUnit4ClassRunner.class和PowerMockRunner.class

解决方法:

你必须使用PowerMockRule.

@RunWith(SpringJUnit4ClassRunner.class) 
@PrepareForTest(X.class)
public class MyTest {
    @Rule
    public PowerMockRule rule = new PowerMockRule();

    // Tests goes here
    ...
}

有关使用PowerMock和Mockito进行Spring集成测试的完整示例,您可以查看此maven project.

svn co http://powermock.googlecode.com/svn/tags/powermock-1.4.12/examples/spring-mockito/
cd spring-mockito/

看看家属的依赖.

less pom.xml

然后运行测试

mvn test

你应该得到以下测试结果:

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
上一篇:java – 如何注入相同接口的多个模拟


下一篇:java – Mockito – 模拟文件的行为