SpringBoot单元测试报错解决思路汇总

最近在做单元测试报错,但是使用postman调用接口运行不会报错。
SpringBoot单元测试报错解决思路汇总_第1张图片
最后检查出来,是因为@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时,单元测试类要和启动类在同一个包下面
      SpringBoot单元测试报错解决思路汇总_第2张图片
    • 使用@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;

你可能感兴趣的:(单元测试,spring,boot,junit)