springboot 单元测试空指针异常,Could not autowire. No beans of ‘***’ type found.
环境:mysql+mybatis-plus,springboot2.1.6
报错信息
这里springboot2.1.6的@Test导入的包是import org.junit.Test;
在springboot2.2之后,导入的包是import org.junit.jupiter.api.Test;
原因:单元测试运行时spring容器没有应用上下文,所以抛出空指针异常
解决空指针异常,在测试类添加@RunWith(SpringRunner.class)
作用是告诉java你这个类通过用什么运行环境运行,例如启动和创建spring的应用上下文。
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
@SpringBootTest
@RunWith(SpringRunner.class)
public class OrderServiceImplTest {
@Resource
private IProductTService productTService;
@Test
public void testTest1() {
System.out.println(productTService.getProductList());
}
}