繁体   English   中英

当我添加“RunWith”注释时,为什么Spring Autowire会停止工作?

[英]Why does the Spring Autowire stops working when I add the “RunWith” annotation?

一旦我添加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)注释,自动装配不起作用。 任何帮助将不胜感激!

在2016年,您可以使用PowerMockito的转轮代表,有效地使用两个跑步者:

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)

更多细节: https//github.com/jayway/powermock/wiki/JUnit_Delegating_Runner

春天不是魔术(即使它有时似乎)。 你的代码中没有任何地方让你有机会启动应用程序上下文并完成自动连接bean的工作。 您需要自己启动上下文或切换测试以使用@RunWith(SpringJUnit4ClassRunner.class) 不幸的是,JUnit一次只支持一个运行器,因此您需要停止使用PowerMockRunner。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM