我是靠谱客的博主 奋斗御姐,最近开发中收集的这篇文章主要介绍解决@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执行单元测试时候如存在线程的情况下,主线程结束后,整个方法就会关闭,方法内部线程有时候不会执行完就结束了,若是方便的话可以直接在主测试方法后面加上,阻断等待语句。

防止测试类主线程提前结束导致线程失效。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持靠谱客。

最后

以上就是奋斗御姐为你收集整理的解决@SpringBootTest 单元测试遇到的坑的全部内容,希望文章能够帮你解决解决@SpringBootTest 单元测试遇到的坑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(299)

评论列表共有 0 条评论

立即
投稿
返回
顶部