Java 为什么我添加“弹簧自动线”时弹簧自动线停止工作;RunWith";注释?
一旦我添加了Java 为什么我添加“弹簧自动线”时弹簧自动线停止工作;RunWith";注释?,java,spring,mocking,mockito,powermock,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
RunWith
注释,即@RunWith(PowerMockRunner.class)
Spring Autowire就不再工作了
class B {
@Autowire
SessionFactory session;
}
@RunWith(PowerMockRunner.class)
@PrepareForTest{SomeClass.class}
class Testing {
@Test
methodA(){
//mehod
}
@Test
methodD(){
}
}
现在,方法A调用了类B,但是由于
RunWith(PowerMockRunner)
注释,自动连接不起作用。任何帮助都将不胜感激 春天不是魔法(即使有时看起来像)。在您的代码中,您没有给spring一个启动应用程序上下文并自动连接bean的机会。您需要自己启动上下文或切换测试以使用@RunWith(SpringJUnit4ClassRunner.class)
。不幸的是,JUnit一次只支持一个运行程序,因此您需要停止使用PowerMockRunner 2016年,您可以将runner delegate与PowerMockito一起使用,有效地使用两个runner:
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
更多详情如下:之前的案例是什么样的@Autowire不仅仅起作用。您以前使用的是Spring测试运行程序、MockitoJUnitRunner或其他工具吗?使用Whitebox或Setter将字段设置为模拟,而不是自动连接。通过这种方式,你可以更好地控制你的类中发生的事情。嗨,杰瑞克,当它运行时,RunWith说RunWith(SpringJUnit4ClassRunner)