Junit引用Spring注入的Bean

发布时间 2023-09-22 16:42:03作者: 甜菜波波

在Junit4中,如果直接引入Spring注入的Bean,Bean会为null,这是由于Junit 默认情况下不会加载 Spring 上下文环境,因此此时无法找到在 Spring注入的Bean。
解决方案:使用以下两个注解
@RunWith(SpringRunner.class) //加载Spring 上下文, Junit5不用
@SpringBootTest(classes = xxxApplication.class) //xxxApplication为springboot启动类

样例:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = xxxApplication.class)
public class XylTest {

    @Autowired
    private xxxService xxxService;

    @Test
    public void a() {
        xxxService.getxxx();
    }

}

https://blog.csdn.net/fg_bear/article/details/123090289