最近在做单元测试报错,但是使用postman调用接口运行不会报错。
最后检查出来,是因为@Test
注解的导入有问题。
@Test所在的包是:
- import org.junit.jupiter.api.Test 用在Spring Boot 2.2.X以后
- import org.junit.Test用在2.2.x之前
由于项目的springboot版本是2.5.6 ,@Test使用的是org.junit.Test
,导致总是报错。
总结:
单元测试不成功,注意以下几点:
- 单元测试类上添加
@SpringBootTest
、@SpringBootTest(classes = 启动类.class)
- 使用
@SpringBootTest
时,单元测试类要和启动类在同一个包下面
- 使用
@SpringBootTest(classes = 启动类.class)
就不需要考虑是不是在同一个包下面
- 使用
- 当测试类和启动类不再同一个包下面时,依赖注入可以可能会报错,只需要
@Autowired(required = false)
或者再添加注解@Lazy
@Test
导入出现问题:- 当SpringBoot版本在2.2.x之前,导入
import org.junit.Test
; - 当SpringBoot版本在2.2.x之后,导入
import org.junit.jupiter.api.Test;
;
- 当SpringBoot版本在2.2.x之前,导入