我需要在junit中使用@BeforeClass
方法但是使用Spring注入值,因此无法将private
变量切换为static
。我正在尝试执行此监听器并创建一个监听器类,但我遇到了这个问题。
我在此类中还需要Autowire
所需的值,因为我想要运行的方法BeforeClass
调用注入@Autowired
的变量。但是,由于某种原因,它不起作用,此值仍为空。有没有人遇到这样的问题?
答案 0 :(得分:14)
这不是最干净的,但它有效:
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);
}
}