解决@SpringBootTest 单元测试遇到的坑
@SpringBootTest单元测试的坑
1、环境
spring boot 版本:2.4.3
2、遇到的问题
(1)@Before、@After 失效
(2)org.junit.runners.model.InvalidTestClassError:

3、解决方式
注意 import 的 junit 包的配套问题
#junit5 配套 import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; #junit4 配套 import org.junit.After; import org.junit.Before; import org.junit.Test;
问题1
- 在 junit5 中 @Before、@After 用@BeforeEach 、@AfterEach 替代。
问题2
- (1)主要出现在使用 junit5 配套引用时,新建的单元测试类在单元测试时,会出现报错,也就是说单元测试类的包名与启动类的包名一直,测试类类名只是在启动类的类名上多了一个Tests就无问题。例:启动类名:DomeApplication;那么单元测试类类名就叫DomeApplicationTests,在该类下写的测试方法就无问题。
- (2)如果想每个控制器类对应一个单元测试类,建议使用junit4 配套,junit5 目前没找到解决方法。
Test类运行单元测试失效
Test测试类无法执行完全问题
再通过java Test类跑批单元测试的时候,发现效果与程序执行的效果不一样,经过debug发现断点无法执行完成。
后来发现问题原因是,test执行单元测试时候如存在线程的情况下,主线程结束后,整个方法就会关闭,方法内部线程有时候不会执行完就结束了,若是方便的话可以直接在主测试方法后面加上,阻断等待语句。

防止测试类主线程提前结束导致线程失效。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring Boot 中常用的注解@RequestParam及基本用法
@RequestParam 是 Spring Framework 和 Spring Boot 中常用的注解之一,用于从请求中获取参数值,本文给大家介绍Spring Boot 中常用的注解@RequestParam,感兴趣的朋友一起看看吧2023-10-10
spring cloud 集成 ribbon负载均衡的实例代码
spring Cloud Ribbon 是一个客户端的负载均衡器,它提供对大量的HTTP和TCP客户端的访问控制。本文给大家介绍spring cloud 集成 ribbon负载均衡,感兴趣的朋友跟随小编一起看看吧2021-11-11
MyBatis-Plus 之selectMaps、selectObjs、selectCount、selectO
本文主要介绍了MyBatis-Plus 之selectMaps、selectObjs、selectCount、selectOne的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-03-03
IntelliJ IDEA 2020常用配置设置大全(方便干活)
这篇文章主要介绍了IntelliJ IDEA 2020常用配置设置大全(方便干活),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-02-02


最新评论