Tim*_*oad 7 java spring mocking mockito powermock
一旦我添加了RunWith
注释,那就是@RunWith(PowerMockRunner.class)
Spring Autowire不再起作用了!
class B {
@Autowire
SessionFactory session;
}
@RunWith(PowerMockRunner.class)
@PrepareForTest{SomeClass.class}
class Testing {
@Test
methodA(){
//mehod
}
@Test
methodD(){
}
}
Run Code Online (Sandbox Code Playgroud)
现在,方法A调用B类,但由于RunWith(PowerMockRunner)
注释,自动装配不起作用.任何帮助将不胜感激!
tee*_*jay 10
在2016年,您可以使用PowerMockito的转轮代表,有效地使用两个跑步者:
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
Run Code Online (Sandbox Code Playgroud)
更多细节:https://github.com/jayway/powermock/wiki/JUnit_Delegating_Runner
春天并不神奇(即使有时看起来很神奇)。在你的代码中没有任何地方给 spring 有机会启动应用程序上下文并完成自动连接 bean 的工作。您需要自己启动上下文或将测试切换为使用@RunWith(SpringJUnit4ClassRunner.class)
. 不幸的是,JUnit 一次仅支持一个运行程序,因此您需要停止使用 PowerMockRunner。