java – 在TestExecutionListener类中为BeforeClass junit使用Autowired

前端之家收集整理的这篇文章主要介绍了java – 在TestExecutionListener类中为BeforeClass junit使用Autowired前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我需要在junit中执行@BeforeClass方法,但是使用Spring注入值,因此无法将私有变量切换为静态.我正在尝试执行此监听器并创建一个监听器类,但我遇到了这个问题.

我也需要在这个类中使用Autowire的值,因为我想运行BeforeClass的方法调用@Autowired注入的变量.但是,由于某种原因,它不起作用,此值仍为空.有没有人遇到这样的问题?

最佳答案
它不是最干净的,但它有效:

  1. public class MyTestListener extends AbstractTestExecutionListener {
  2. @Value("${my.value}")
  3. private String myValue;
  4. @Autowired
  5. private MyBean myBean;
  6. @Override
  7. public void beforeTestClass(TestContext testContext) throws Exception {
  8. testContext.getApplicationContext()
  9. .getAutowireCapablebeanfactory()
  10. .autowireBean(this);
  11. }
  12. }

猜你在找的Spring相关文章