解决@SpringBootTest 单元测试遇到的坑
目录
- @SpringBootTest单元测试的坑
- 1、环境
- 2、遇到的问题
- 3、解决方式
- Test类运行单元测试失效
- Test测试类无法执行完全问题
@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的单元测试中,@Before不被执行的原因
我们先来看下笔者的单元测试的依赖版本: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from reposi
-
使用@SpringBootTest注解进行单元测试
概述 @SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解.基本用法如下: 1. 添加Maven依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <parent> <groupId>org.springframework.boot</gro
-
SpringBoot使用@SpringBootTest注解开发单元测试教程
概述 @SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解.基本用法如下: 1.添加依赖: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.
-
解决@SpringBootTest 单元测试遇到的坑
目录 @SpringBootTest单元测试的坑 1.环境 2.遇到的问题 3.解决方式 Test类运行单元测试失效 Test测试类无法执行完全问题 @SpringBootTest单元测试的坑 1.环境 spring boot 版本:2.4.3 2.遇到的问题 (1)@Before.@After 失效 (2)org.junit.runners.model.InvalidTestClassError: 3.解决方式 注意 import 的 junit 包的配套问题 #junit5 配套 impor
-
SpringBootTest单元测试报错的解决方案
目录 SpringBootTest单元测试报错 单元测试 @mock和@SpringBootTest使用 一.单元测试工具mock使用 二.springboot使用@SpringBootTest单元测试 三.mock和@springBootTest区别 SpringBootTest单元测试报错 @RunWith(SpringRunner.class) @SpringBootTest(classes = { DataRulesApplication.class }) @EnableAutoConf
-
解决@springboottest注解无法加载src/main/resources目录下文件
目录 结论 环境及问题描述 问题分析 1.首先com.xx.xxx.service.SsoService该类存在 2.再看下pom文件的配置 3.这个类是在src/main/resources目录下的资源文件里配置 Springboot微服务框架是目前越来越流行的框架,省去了很多繁琐的xml配置.最近新启了个项目,采用SpringBoot框架从头搭建,中间也遇到过各种坑,现在先描述一下 Junit4单元测试之坑吧. 结论 @SpringBootTest注解,只会加载test路径下的资源文件(即x
-
vue-router之解决addRoutes使用遇到的坑
最近项目中使用了vue-router的addRoutes这个api,遇到了一个小坑,记录总结一下. 场景复现: 做前端开发的同学,大多都遇到过这种需求:页面菜单根据用户权限动态生成,一个常见的解决方案是: 前端初始化的时候,只挂载不需要权限路由,如登陆,注册等页面路由,然后等用户登录之后,后端返回当前用户的权限表,前端根据这个权限表遍历前端路由表,动态生成用户权限路由,然后使用vue-router提供的addRoutes,将权限路由表动态添加到路由实例中,整个过程大致如下: // router.
-
解决golang 关于全局变量的坑
学习golang不久,在定义全局变量的时候遇见了坑.写个小例子,增强记忆. 错误版本 var p int func main() { p, err := test(4) if err != nil { log.Fatal(err) } } func test(i int) (int, error) { return i + 1, nil } 编译一直不通过,p declared and not used.后来查了查资料,看见这种其实是在main里边又重新定义了p,所以一直提示p定义了但是没有使用
-
解决Android原生定位的坑
Android原生定位的代码网上已经很多了,就不贴出来. 简单了解下: GPS_PROVIDER:通过手机内置的GPS芯片,利用卫星获取定位信息.位置监听.卫星状态监听很耗电且室内定位很不准确. NETWORK_PROVIDER:网络定位通过基站和WiFi节点,利用节点id在定位数据服务器查询位置信息.但是国内网络不允许,且有消息称Google已不提供该服务.so网上出现的此种方式获取定位信息不可用,也就是说NETWORK_PROVIDER在国内不可用. PASSIVE_PROVIDER:被动定
-
解决python logging遇到的坑 日志重复打印问题
python 中 logging模块 假如遇到 多线程 或者 多进程 或者在web框架中自定义logging的话(一个请求就是一个独立的线程)非常容易重复打印日志 和造成内存崩溃,所以: 解决方法如下: 重写日志方法 用类: class Log(): import logging def __init__(self): self.logger = logging.getLogger(__name__) # 以下三行为清空上次文件 # 这为清空当前文件的logging 因为logging会包含所有
-
解决BufferedReader.readLine()遇见的坑
目录 BufferedReader.readLine()遇见的坑 今天踩了这个坑,所以做个笔记 所以使用readLine()一定要注意 BufferedReader.readLine解析 BufferedReader.readLine()遇见的坑 在写ftp上传文件至服务器的过程中,有这样一个判断:判断某个文件夹下有多少个文件,内容为null的文件不上传,所以利用BufferedReader读取文件的内容,判断是否为null,所以用到了BufferedReader.readLine(),结果竟然
-
解决mybatis-plus自定义xml的坑
目录 mybatis-plus自定义xml的坑 1.properties文件没有指明xml文件路径 2.没有扫描mapper的配置类 3.xml文件命名空间位置没写对 自定义xml的模板 mybatis-plus自定义xml的坑 1.properties文件没有指明xml文件路径 2.没有扫描mapper的配置类 3.xml文件命名空间位置没写对 自定义xml的模板 <?xml version="1.0" encoding="UTF-8" ?> <
-
SpringBootTest--踩坑错误的解决
目录 SpringBootTest 踩坑 SpringBootTest的一个小坑注意点 1.我当时运行SpringBoot测试类的时候踩这个坑 2.解决方法 SpringBootTest 踩坑 Spring boot降低了我们对spring开发的难度 采用了大量在的自动配置,我们只需要进行简单的基本配置,就能快速开发一个spring应用.同样spring对于单元测试也有场景启动器----spring-boot-starter-test,可以让我们在,spring环境下进行测试. 昨天测试的时候,
随机推荐
- js cookies 常见网页木马挂马代码 24小时只加载一次
- cmd dir结构树显示代码(列出目录文件)
- 关于Java垃圾回收开销降低的几条建议
- Java的Struts框架中Action的编写与拦截器的使用方法
- tomcat报错:Wrapper cannot find servlet class ...问题解决
- C#文件流进行压缩和解压缩的方法
- php魔术方法与魔术变量、内置方法与内置变量的深入分析
- python中黄金分割法实现方法
- 基于switch你可能不知道的一些用法
- SWT(JFace)体验之模拟BorderLayout布局
- JavaScript中匿名、命名函数的性能测试
- 常用的javascript function代码
- PHP命名空间(Namespace)简明教程
- PowerShell中使用Get-Alias命令获取cmdlet别名例子
- Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解
- 当ListView有Header时 onItemClick里的position不正确的原因
- SqlServer查询和Kill进程死锁的语句
- flash 得到自身url参数的代码
- Nginx下无法使用中文URL的解决方法
- C++中智能指针如何设计和使用