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

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

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

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

public class MyTestListener extends AbstractTestExecutionListener {

    @Value("${my.value}")
    private String myValue;
    @Autowired
    private MyBean myBean;

    @Override
    public void beforeTestClass(TestContext testContext) throws Exception {
        testContext.getApplicationContext()
                .getAutowireCapablebeanfactory()
                .autowireBean(this);
    }
}

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...