Spring Boot的单元测试

news2024/11/25 16:28:01

在这里插入图片描述

⭐️前言⭐️

一个Spring项目是有很多个功能的,如果想要单独测试某一个功能是否逻辑正确,就不能只依靠启动类来将整个项目启动去进行测试,而是要通过单元测试的方法,来单独的测试某一个功能,这篇文章就来介绍单元测试的方法。

🍉欢迎点赞 👍 收藏留言评论 📝私信必回哟😁

🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言

🍉博客中涉及源码及博主日常练习代码均已上传GitHub


请添加图片描述

📍内容导读📍

  • 🍅1.什么是单元测试?
  • 🍅2.单元测试的好处
  • 🍅3.Spring Boot单元测试步骤
    • 3.1 生成单元测试类
    • 3.2 添加单元测试代码
  • 🍅4.断言说明

🍅1.什么是单元测试?

对软件中的最小可测试单元进行检查和验证的过程单元测试(Unit Testing)。

单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的(代码)功能是否正确。执行单元测试就是为了证明某段代码的执行结果是否符合我们的预期。如果测试结果符合我们的预期,称之为测试通过,否则就是测试未通过。

🍅2.单元测试的好处

1.可以非常简单、直观、快速的测试某一个功能是否正确。
2.使用单元测试可以帮我们在打包的时候,发现一些问题,因为在打包之前,所有的单元测试必须通过,否则不能打包成功。
3.使用单元测试,在测试成功的时候,可以不污染连接的数据库,也就是可以不对数据库进行任何改变的情况下,测试功能。

🍅3.Spring Boot单元测试步骤

Spring Boot项目创建的时候会默认创建单元测试框架spring-boot-test,而这个单元测试框架主要是依靠另一个著名的测试框架JUnit实现的,打开pom.xml就可以看到,以下信息是Spring Boot项目创建时自动添加的:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <scope>test</scope>
</dependency>

3.1 生成单元测试类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时生成了单元测试的框架类,具体的业务代码需要自己填充。

3.2 添加单元测试代码

  1. 添加@SpringBootTest注解
    在这里插入图片描述
  2. 添加单元测试的业务代码

在这里插入图片描述
@Test注解左边有表示运行的三角符,点击运行测试,测试结果如下:
在这里插入图片描述

🍅4.断言说明

在这里插入图片描述

断言:如果断言失败,则后面的代码都不会执行


⭐️最后的话⭐️
总结不易,希望uu们不要吝啬你们的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MEC硬件加速技术分析

【摘 要】为了解决边缘机房的供电、散热以及承重能力有限,无法为MEC提供足够的计算资源的问题,分析了MEC在第三方应用,OVS和虚拟化用户面的性能瓶颈,提供硬件加速的方法。研究表明,通过上述方法,可突破MEC的性能和时延瓶颈,实现高性能、低时延,并兼顾性能、成本和开放…

稳踞三大价值高地!昆仑万维角逐AIGC“新大陆”

历史总是被前瞻者和实干家推动着加速前行。 15世纪&#xff0c;多艘探险船队从欧洲出发向着东方而去&#xff0c;开启群雄角逐的探索时代。他们在航行中不断发现新大陆&#xff0c;兴起无数的造富神话&#xff0c;也加速了全球贸易、信息等方面的交流&#xff0c;翻开一个全新…

Hadoop学习笔记——MapReduce

文章目录一、MapReduce概述1.1、MapReduce定义1.2、MapReduce优缺点1.2.1 优点1.2.2 缺点1.3、MapReduce核心思想1.4、MapReduce进程1.5、官方WordCount源码1.6、常用数据序列化类型1.7、MapReduce程序规范1.8、 WordCount案例实操1.8.1 本地测试1.8.2 提交到集群测试一、MapRe…

XiaoMi手机MIX 2S线刷固件和刷入Recovery、Root

mix 2s 固件下载地址 https://web.vip.miui.com/page/info/mio/mio/detail?postId4865868&app_versiondev.20051 miflash线刷工具下载地址 https://miuiver.com/miflash/ 安装miflash线刷工具 点击安装驱动 打开miflash 手机关机按音量下加开机键进入bootloader&#xf…

(Java)[NOIP2006 普及组] 明明的随机数

[NOIP2006 普及组] 明明的随机数一、题目描述二、输入格式三、输出格式四、样例输入五、样例输出六、正确代码&#xff08;1&#xff09;方法一&#xff08;2&#xff09;方法二&#xff08;3&#xff09;方法三七、思路与分析&#xff08;1&#xff09;题目分析&#xff08;2&…

mysql基于Amoeba(变形虫)实现读写分离

一&#xff0c;Amoeba介绍 1、什么是amoeba&#xff1f; ​ Amoeba(变形虫)项目&#xff0c;专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据…

【数据结构】顺序表与线性表之ArrayList

目录 一、顺序表与线性表的概念 1、顺序表 2、线性表 二、Java里的集合类之ArrayList 1、ArrayList与顺序表 2、认识ArrayList 1.构造方法 2.常用方法 3.遍历ArrayList的几个方法 4.扩容机制 三、模拟实现ArrayList 1、字段 2、构造方法 3、常用方法 1.判满 2.判…

10.1、Django入门

文章目录预备知识MVC模式和MTV模式MVC模式MTV 模式Django框架Django框架简介Django框架的应用启动后台admin站点管理数据库迁移创建管理员用户管理界面本地化创建并使用一个应用bookapp预备知识 HTTP协议就是客户端和 服务器端之间数据传输的格式规范&#xff0c;格式简称为“…

教你搭建FTP文件共享服务器

一、什么是FTP FTP—文件传输协议&#xff08;File Transfer Protocol&#xff0c;FTP&#xff09;是用于在网络上进行文件传输的一套标准协议&#xff0c;它工作在 OSI 模型的第七层&#xff0c; TCP 模型的第四层&#xff0c; 即应用层&#xff0c; 客户在和服务器建立连接前…

BCN基团TAMRA-BCN-PEG4-endo,endo-BCN-PEG4

中文名&#xff1a;endo-BCN-四聚乙二醇-四甲基罗丹明 英文名&#xff1a;endo-BCN-PEG4-TAMRA&#xff0c;TAMRA-BCN-PEG4-endo CAS号&#xff1a;N/A 化学式&#xff1a;C46H56N4O10 分子量&#xff1a;824.97 产品描述&#xff1a; TAMRA-BCN-PEG4-endo包含 TARMA 染料和 …

分布式系统(数据复制与一致性)

文章目录ReplicationCAP ConjectureData-centric Consistency ModelsSequential ConsistencyCausal ConsistencyEntry ConsistencyEventual ConsistencyClient-centric Consistency ModelsMonotonic Read ConsistencyMonotonic Writes ConsistencyRead Your Writes Consistency…

Python学习基础笔记五十三——单继承

1、派生属性&#xff1a; 当然子类也可以添加自己的新的属性或者在这里重新定义这些属性&#xff08;不会影响到父类&#xff09;&#xff0c;需要注意的是&#xff0c;一旦重新定义了自己的属性且与父类重名&#xff0c;那么调用新增的属性&#xff0c;就以自己为准了。 例1…

在Windows中使用Nginx配置部署springboot+vue项目

Nginx 链接&#xff1a;https://pan.baidu.com/s/1c-9JJ3e63rNNeSRuEFh0Ow?pwdaamb 提取码&#xff1a;aamb 配置 解压后进入到 conf 目录下&#xff0c;修改 nginx.conf 文件&#xff0c;将下面的内容直接复制粘贴进去即可。 events {worker_connections 1024; ## Defa…

分享即时通讯音视频开发编码标准

即时通讯应用中的实时音视频技术&#xff0c;几乎是IM开发中的最后一道高墙。原因在于&#xff1a;实时音视频技术 音视频处理技术 网络传输技术 的横向技术应用集合体&#xff0c;而公共互联网不是为了实时通信设计的。 视频通讯过程是视频和音频的实时双向完整通讯过程。在…

java学习day62(乐友商城)商品规格设计与商品查询的页面实现

1.商品规格数据结构 乐优商城是一个全品类的电商网站&#xff0c;因此商品的种类繁多&#xff0c;每一件商品&#xff0c;其属性又有差别。为了更准确描述商品及细分差别&#xff0c;抽象出两个概念&#xff1a;SPU和SKU&#xff0c;了解一下&#xff1a; 1.1.SPU和SKU SPU&…

恒温恒湿实验室(房)建设、设计SICOLAB

通用实验室是指适用于多学科的以实验台规模进行经常性科学研究和实验工作的实验室&#xff0c;其夏季空气调节室内计算参数为温度 26&#xff5e;28℃&#xff0c;相对湿度小于 65%&#xff0c;在规范中没有对温湿度控制精度及洁净度做相关要求。专用实验室是指有特定环境要求&…

C++基础学习三

目录儿六、分支语句和逻辑操作符6.1 if语句6.1.1 if6.1.2 if-else6.1.3 if-else if-else6.2 逻辑表达式6.2.1 逻辑或||6.2.2 逻辑与&&6.2.3 逻辑非!6.2.4 逻辑操作符的其他表示方式6.3 字符函数库cctype6.4 三目/元操作符6.5 switch语句6.5.1 switch引入枚举常量6.6 br…

【OpenCall】ICASSP2023通用会议理解及生成挑战赛邀请函

ICASSP2023 通用会议理解及生成挑战赛(General Meeting Understanding and Generation Challenge,缩写为 MUG)是ICASSP2023 系列大挑战(SPGC)之一&#xff0c;由魔搭ModelScope社区、阿里巴巴达摩院语音实验室&语言技术实验室&#xff0c;阿里云天池联合浙江大学数字媒体计…

Linux基本搭建和操作

Linux基本搭建和操作1、创建三台虚拟机2、创建使用SSH远程连接3、实现IP地址与主机名的映射4、关闭和禁用防火墙5、创建目录结构6、压缩打包7、安装软件包安装jdk安装mysql8、创建脚本文件9、运行脚本文件10、免密登录配置11、远程拷贝文件1、创建三台虚拟机 序号虚拟机名称静…

高效技巧-打表法

打表法 打表是一种典型的用空间换时间的技巧 一般指将所有可能需要用到的结果事先计算出来&#xff0c;这样后面需要用到时就可以直接查表获得。 打表常见的用法有如下几种: ①在程序中一次性计算出所有需要用到的结果&#xff0c;之后的查询直接取这些结果这个是最常用到的…