为什么 Spring @Autowired ApplicationContext 在集成测试中为 null?

val*_*occ 1 java spring

我仍然是 Spring 的新手,并且在堆栈上查看了类似的问题,但无法从我阅读的内容中确定答案。

当我调用我的 applicationContext 变量时,我收到了一个 NPE,这意味着该 bean 必须没有被正确创建或注入。这是我的程序的相关部分。

@SpringBootTest
@ContextConfiguration(classes = TestConfig.class)
public class SampleIT {

    @Autowired
    private ApplicationContext applicationContext;

    @Test
    public void sampleMethod() throws Exception {

        //NPE below
        String[] allBeanNames = applicationContext.getBeanDefinitionNames();

        //more logic 
Run Code Online (Sandbox Code Playgroud)

我试图让 ApplicationContext 实例来调试为什么其他 bean 从我的配置中为空,所以这一切都必须是因为我对 ApplicationContext 是如何设置的以及从中注入的 bean 的理解存在一个基本缺陷。很感谢任何形式的帮助!

ale*_*x87 6

尝试将以下注释添加到您的类中SampleIT

@RunWith(SpringRunner.class)
Run Code Online (Sandbox Code Playgroud)