最初我是在junits只用这样的Mockito我在@RunWith注释,即使用SpringJUnit4ClassRunner.class
@RunWith(SpringJUnit4ClassRunner.class)
由于这春天的依赖注入工作正常,并通过渐渐豆
@Autowired
Someservice someservice ;
但现在,我还集成PowerMock在里面。
所以,按照DOC ,我已经取代了阶级@RunWith注释中提到与
@RunWith(PowerMockRunner.class)
但现在,someservice是走出来为空。 是否有@RunWith标注同时使用SpringJUnit4ClassRunner.class和PowerMockRunner.class方式
您必须使用PowerMockRule 。
@RunWith(SpringJUnit4ClassRunner.class)
@PrepareForTest(X.class)
public class MyTest {
@Rule
public PowerMockRule rule = new PowerMockRule();
// Tests goes here
...
}
对于Spring集成测试与PowerMock和的的Mockito一个完整的例子,你可以签这个Maven项目 。
svn co http://powermock.googlecode.com/svn/tags/powermock-1.4.12/examples/spring-mockito/
cd spring-mockito/
看看依赖判断powermock。
less pom.xml
然后运行测试
mvn test
你应该得到的试验结果如下:
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
我知道这个线程是旧的,但它是很好的补充,从2014年起,该拉的要求 ,你可以使用@PowerMockRunnerDelegate
标注为“委托”运行上下文SpringJUnit4ClassRunner
(或任何其他选手真的)。
上面的代码如下所示:
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
@PrepareForTest(X.class);
public class MyTest {
// Tests goes here
...
}
有了这个注解,你不需要PowerMock规则了!