单元测试-spring-boot-starter-test+junit5
前言:
开发过程中经常需要写单元测试,记录一下单元测试spring-boot-starter-test+junit5的使用
引入内容:
引用jar包
<!-- SpringBoot测试类依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>
<!-- junit -->
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.9.2</version><scope>test</scope>
</dependency>
注入service\mapper代码测试:
可以对局部函数、方法进行调用测试
import java.util.*;
import java.util.stream.Collectors;@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class DServerLocalApplicationTests {@AutowiredAService aService;@Autowiredprivate AMapper aMapper;@Autowiredprivate BMapper bMapper;@Testvoid test() {List<A> a= aMapper.selectList(null);List<B> b = bMapper.selectList(null); ...}
}
测试restful接口:
可以对API调用进行模拟测试
/*** @author CH* @version 1.0 单元测试模板案例* @data 2023/6/6 14:12*/
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
public class TestTemplateTests {// MockMvc是Spring提供的专用于测试Controller类private MockMvc mockMvc;@Autowiredprivate WebApplicationContext wac;@Beforepublic void setup() {// 初始化MockMvc对象;this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();}@Beforepublic void init() {log.info("开始测试...");}@Afterpublic void after() {log.info("测试结束...");}/**** 加@Transactional可以对单元测试执行的结果进行回滚,不会产生脏数据*/@Transactional@Testpublic void getTest() throws Exception {ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders// URL =>注意:在测试类中,不需要将根路径写进去 ,还有很多调用方式post\put\delete.get("/appAssets/assetsTest")// 参数格式.contentType(MediaType.APPLICATION_JSON)// 传参格式很多
// .content(JSONObject.toJSONString(""))
// .header()
// .param());MvcResult mvcResult =resultActions// 接口调用状态.andExpect(MockMvcResultMatchers.status().isOk())// 打印结果数据.andDo(MockMvcResultHandlers.print()).andReturn();// 取到结果进行断言Result result = JSON.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);// 对结果进行断言Assertions.assertEquals("操作成功", result.getMessage());Assertions.assertEquals(200, result.getStatus());}}
相关文章:
单元测试-spring-boot-starter-test+junit5
前言: 开发过程中经常需要写单元测试,记录一下单元测试spring-boot-starter-testjunit5的使用 引入内容: 引用jar包 <!-- SpringBoot测试类依赖 --> <dependency><groupId>org.springframework.boot</groupId><…...
CentOS 7上安装Anaconda 详细教程
目录 1. 下载Anaconda安装脚本2. 校验数据完整性(可选)3. 运行安装脚本4. 遵循安装指南5. 选择安装位置6. 初始化Anaconda7. 激活安装8. 测试安装9. 更新Anaconda10. 使用Anaconda 1. 下载Anaconda安装脚本 首先需要从Anaconda的官方网站下载最新的Anac…...
2023年全球软件架构师峰会(ArchSummit深圳站):核心内容与学习收获(附大会核心PPT下载)
本次峰会是一次重要的技术盛会,旨在为全球软件架构师提供一个交流和学习的平台。本次峰会聚焦于软件架构的最新趋势、最佳实践和技术创新,吸引了来自世界各地的软件架构师、技术专家和企业领袖。 在峰会中,与会者可以了解到数字化、AIGC、To…...
RT-Thread Studio学习(十六)定时器计数
RT-Thread Studio学习(十六)定时器计数 一、简介二、新建RT-Thread项目并使用外部时钟三、启用PWM输入捕获功能四、测试 一、简介 本文将基于STM32F407VET芯片介绍如何在RT-Thread Studio开发环境下使用定时器对输入脉冲进行计数。 硬件及开发环境如下…...
【linux进程间通信(一)】匿名管道和命名管道
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:Linux从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学更多操作系统知识 🔝🔝 进程间通信 1. 前言2. 进程间…...
第11章 jQuery
学习目标 了解什么是jQuery,能够说出jQuery的特点 掌握jQuery的下载和引入,能够下载jQuery并且能够使用两种方式引入jQuery 掌握jQuery的简单使用,能够使用jQuery实现简单的页面效果 熟悉什么是jQuery对象,能够说出jQuery对象与DOM对象的区别 掌握利用选择器获取元素的方法…...
leetcode:1736. 替换隐藏数字得到的最晚时间(python3解法)
难度:简单 给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。 有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。 …...
MySQL存储函数与存储过程习题
创建表并插入数据: 字段名 数据类型 主键 外键 非空 唯一 自增 id INT 是 否 是 是 否 name VARCHAR(50) 否 否 是 否 否 glass VARCHAR(50) 否 否 是 否 否 sch 表内容 id name glass 1 xiaommg glass 1 2 xiaojun glass 2 1、创建一个可以统计表格内记录…...
基于 Hologres+Flink 的曹操出行实时数仓建设
本文整理自曹操出行实时计算负责人林震基于 HologresFlink 的曹操出行实时数仓建设的分享,内容主要分为以下六部分: 曹操出行业务背景介绍曹操出行业务痛点分析HologresFlink 构建企业级实时数仓曹操出行实时数仓实践曹操出行业务成果分析未来展望 一、曹…...
【Docker】实战多阶段构建 Laravel 镜像
作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 本节适用于 PHP 开发者阅读。Laravel 基于 8.x 版本,各个版本的文件结构可能会有差异,请根据实际自行修改。 准备 新…...
【MATLAB源码-第118期】基于matlab的蜘蛛猴优化算法(SMO)无人机三维路径规划,输出做短路径图和适应度曲线。
操作环境: MATLAB 2022a 1、算法描述 蜘蛛猴优化算法(Spider Monkey Optimization, SMO)是一种灵感来源于蜘蛛猴觅食行为的群体智能优化算法。蜘蛛猴是一种生活在南美洲热带雨林中的灵长类动物,它们在寻找食物时展现出的社会行…...
【计算机组成与体系结构Ⅱ】Tomasulo 算法模拟和分析(实验)
实验5:Tomasulo 算法模拟和分析 一、实验目的 1:加深对指令级并行性及开发的理解。 2:加深对 Tomasulo 算法的理解。 3:掌握 Tomasulo 算法在指令流出、执行、写结果各阶段对浮点操作指令以及 load 和 store 指令进行了什么处…...
Nginx 简介
1、概念介绍 Nginx ("engine x") 是一个轻量级、高性能的 WEB 服务器软件和反向代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发…...
C++入门学习(一)写一个helloworld
1、头文件 #include <iostream> using namespace std; 任何程序都需要这两句的,写上就好。 2、主文件 int main() {cout<<"Hello World!"<<endl;return 0; } 由于是int型数据,所以要返回一个值,即return0。…...
ChatGPT 股市知识问答
我 2024-01-17 14:16:38 股市交易的关键指标有哪些? ChatGPT 2024-01-17 14:16:38 股市交易中常用的关键指标有很多,以下是一些常见的指标: 股价指标:股价是衡量股票价格变化的重要指标,包括每股收益(EPS…...
uniapp多端评价页
如图所示:评价页 <template><view><!-- 顶部 --><view class"evaluate_head"><image class"headBg" src"/static/evaluate/head.png" mode""></image><view class"headZindex…...
行为树(Behavior Trees)
行为树(Behavior Trees)是一种在游戏开发中广泛使用的AI设计模式,主要用于描述AI的行为和决策过程,实现更加智能和自然的游戏AI。它由多个节点组成,每个节点代表一个行为或决策,按照特定的方式连接在一起&a…...
opensssl BIO方式https客户端
废话不多说,代码中使用了两种https客户端的实现方式。 #include <windows.h> #include <WinSock.h>#pragma comment(lib,"ws2_32.lib") #include "../include/openssl\ssl.h" #include "../include/openssl\err.h"#pragm…...
JavaScript之判断是否整数、取余、取整、进制、位或、ES6
MENU 方法一方式二方式三方式四方式五结束语 方法一 使用取余运算符判断,利用任何整数都会被1整除的原理,即余数是0的特点,通过这个规则来判断是否是整数。 let isInteger (val) > val % 1 0;// true isInteger(5); // false isInteger(…...
【打造你自己的Shell:编写定制化命令行体验】
本节重点: 学习进程创建,fork/vfork 学习到进程等待 学习到进程程序替换, 微型shell,重新认识shell运行原理 学习到进程终止,认识$? 一、进程创建 1.1.fork函数初识 在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程…...
论文小白必看!书匠策AI到底怎么帮你把毕业论文“拼“出来?看完这篇你就全懂了
各位还在深夜对着Word文档抓头发的同学,先别急着崩溃,今天咱们用最轻松的方式,聊聊一个正在帮无数毕业生"逆天改命"的工具——书匠策AI。 官方网址:** 官网直达:www.shujiangce.com*,微信搜一搜…...
CANN Ascend C数据转换临时空间API
GetTransDataMaxMinTmpSize 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: http…...
观察Taotoken用量看板如何帮助团队精打细算每一分token
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken用量看板如何帮助团队精打细算每一分token 对于依赖大模型进行开发的团队而言,成本控制与预算规划是日常运…...
Docker容器化高可用架构部署方案(十二)
11-MySQL-MGR初始化 本文档详细介绍MySQL MGR(Group Replication)集群的初始化步骤。 初始化前提 三个MySQL容器已正常运行 MySQL容器healthcheck通过 网络连通性正常 初始化步骤 步骤1:等待MySQL容器就绪 # 查看MySQL容器状态 docke…...
别再混着用了!C++里malloc、new和vector到底该怎么选?一个真实项目踩坑复盘
别再混着用了!C里malloc、new和vector到底该怎么选?一个真实项目踩坑复盘 在开发一个高性能数据缓存管理器时,团队新成员提交的代码引发了持续三天的内存泄漏排查。同一个功能模块中竟同时出现了malloc、new和vector三种内存管理方式…...
从Verilog到GDS:用Calibre nmLVS-H模式搞定复杂芯片的层级化物理验证
从Verilog到GDS:用Calibre nmLVS-H模式搞定复杂芯片的层级化物理验证 在当今超大规模集成电路设计中,物理验证已成为确保芯片功能正确的最后一道防线。随着工艺节点不断微缩,设计复杂度呈指数级增长,传统的扁平化验证方法已难以应…...
ViGEmBus虚拟游戏控制器驱动:从零开始掌握Windows手柄模拟技术
ViGEmBus虚拟游戏控制器驱动:从零开始掌握Windows手柄模拟技术 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 想在Windows电脑上使用任意手柄玩…...
空洞骑士模组管理革命:Scarab如何让复杂变简单?
空洞骑士模组管理革命:Scarab如何让复杂变简单? 【免费下载链接】Scarab An installer for Hollow Knight mods written with Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 还在为空洞骑士模组安装而头疼吗?每次手动…...
Visual C++ 运行库一体化解决方案:跨版本兼容性管理实践
Visual C 运行库一体化解决方案:跨版本兼容性管理实践 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Windows 应用程序依赖的 Visual C 运行库版本碎…...
告别混乱!用这6个SAP屏幕跳转语句,让你的Fiori应用底层逻辑更清晰
告别混乱!用这6个SAP屏幕跳转语句,让你的Fiori应用底层逻辑更清晰 在SAP的演进历程中,从传统的ABAP Dialog编程到现代的Fiori/UI5应用开发,屏幕导航逻辑始终是系统交互设计的核心。对于同时维护传统模块和开发新Fiori界面的开发者…...
