Junit引用Spring注入的Bean
在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