Bhu*_*van 12 java junit mockito powermock
最初我在junits中只使用Mockito所以我在@RunWith注释中使用了SpringJUnit4ClassRunner.class,即
@RunWith(SpringJUnit4ClassRunner.class)
Run Code Online (Sandbox Code Playgroud)
由于春季依赖注入工作正常,并正在通过
@Autowired
Someservice someservice ;
Run Code Online (Sandbox Code Playgroud)
但是现在,我还在其中集成了PowerMock.
因此,根据doc,我已经用@RunWith注释替换了提到的类
@RunWith(PowerMockRunner.class)
Run Code Online (Sandbox Code Playgroud)
但是现在,有些服务似乎是空的.有没有办法在@RunWith注释中同时使用SpringJUnit4ClassRunner.class和PowerMockRunner.class
gon*_*ard 14
您必须使用PowerMockRule.
@RunWith(SpringJUnit4ClassRunner.class)
@PrepareForTest(X.class)
public class MyTest {
@Rule
public PowerMockRule rule = new PowerMockRule();
// Tests goes here
...
}
Run Code Online (Sandbox Code Playgroud)
有关使用PowerMock和Mockito进行Spring集成测试的完整示例,您可以查看此maven项目.
svn co http://powermock.googlecode.com/svn/tags/powermock-1.4.12/examples/spring-mockito/
cd spring-mockito/
Run Code Online (Sandbox Code Playgroud)
看看家属的依赖.
less pom.xml
Run Code Online (Sandbox Code Playgroud)
然后运行测试
mvn test
Run Code Online (Sandbox Code Playgroud)
你应该得到以下测试结果:
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
Run Code Online (Sandbox Code Playgroud)
Pom*_*m12 13
我知道这个线程已经过时了,但是自从2014年和这个拉取请求添加它之后,您可以使用@PowerMockRunnerDelegate注释将运行上下文"委托"给SpringJUnit4ClassRunner(或任何其他运行者).
上面的代码看起来像:
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
@PrepareForTest(X.class);
public class MyTest {
// Tests goes here
...
}
Run Code Online (Sandbox Code Playgroud)
使用此注释,您不再需要PowerMock规则!
| 归档时间: |
|
| 查看次数: |
17364 次 |
| 最近记录: |