springboot 单元测试-各个模块举例
controller单测
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;import java.util.ArrayList;
import java.util.List;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;@WebMvcTest(DemoFacade.class)
@RunWith(MockitoJUnitRunner.class)
public class DemoFacadeTest {@InjectMocksprivate DemoFacade demoFacade;@Autowiredprivate MockMvc mockMvc;@Mockprivate DemoQryAPI demoQryAPI; // DemoFacade 里的注入的一个类@Beforepublic void init() {// 开启mockMockitoAnnotations.initMocks(this);// 测试方法执行前,初始化MockMvcmockMvc = MockMvcBuilders.standaloneSetup(demoFacade).build();}@Autowiredprivate ObjectMapper objectMapper;@SneakyThrows@Testpublic void selectAll() {PaginationResult<List<DemoQryResp>> obj2 = new PaginationResult();Mockito.when(demoQryAPI.selectAll(Mockito.any())).thenReturn(obj2);obj2.setCode("000000"); String contentParam = "{}"; //jsonmockMvc .perform(MockMvcRequestBuilders.post("/xx/select").contentType(MediaType.APPLICATION_JSON).content(contentParam)).andExpect(status().isOk()) ;}
}
mapper单测
测试自定义的sql对不对
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;import javax.sql.DataSource;import static org.junit.Assert.*;
//需要加载的配置
@SpringBootTest(classes = {DataSourceAutoConfiguration.class
, MybatisPlusAutoConfiguration.class,DataSource.class, SqlSessionFactory.class})
@MapperScan(basePackageClasses = DemoMapper.class)
@RunWith(SpringRunner.class)
@ActiveProfiles("mysql") // application-mysql.yml
public class DemoMapperTest { @Autowiredprivate DemoMapper demoMapper;@Testpublic void flushCheckingDetail() {demoMapper.flushCheckingDetail(); }}
普通类的单测
@RunWith(MockitoJUnitRunner.class)
public class DemoTest {@InjectMocksDemo demo;/*** 测试*/@Testpublic void cal() {List<Integer> list=new ArrayList<>(); list.add(2);list.add(2);Integer sum = demo.cal(list); Assertions.assertThat(sum).isEqualTo(4); }
}
注意:单测主要是测这个方法行不行,集中在这个最小单元,测试快熟,有利于代码的迭代升级,减少bug
相关文章:
springboot 单元测试-各个模块举例
controller单测 import com.fasterxml.jackson.databind.ObjectMapper; import lombok.SneakyThrows; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Moc…...
MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升
在当今矿业行业,随着全球对资源需求的不断增加和开采难度的逐步提升,传统的作业方式面临着越来越多的挑战。露天矿山开采,因其大规模的作业环境和复杂的地形特点,面临着作业人员的安全风险、设备调度的高难度以及资源利用率低下等…...
Android亮屏Job的功耗优化方案
摘要: Job运行时会带来持锁的现象,目前灭屏放电Job的锁托管已经有doze和绿盟标准监管,但是亮屏时仍旧存在过长的持锁现象,故为了优化功耗和不影响用户体验下,新增亮屏放电下如果满足冻结和已运行过一次Job,则进行job限制,当非冻结时恢复的策略 1.现象: (gms_schedu…...
React05 样式控制 classnames工具优化类名控制
样式控制 & classnames工具优化类名控制 样式控制1. 行内样式控制2. 外部样式控制 classnames工具优化类名控制 样式控制 1. 行内样式控制 //定义样式 const style {color: red,fontSize: 30px }function App() {return (<div className"App">{/* 行内样…...
OJ-5G网络建设
示例1 输入: 3 3 1 2 3 0 1 3 1 0 2 3 5 0 输出: 4示例2 输入: 3 1 1 2 5 0 输出: -1 示例3 输入: 3 3 1 2 3 0 1 3 1 0 2 3 5 1 输出: 1 分析:压缩路径 顺序:1 2;…...
Linux简介
1.Linux定义 Linux 是免费使用和自由传播的类 Unix 操作系统,是基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思…...
android——渐变色
1、xml的方式实现渐变色 效果图: xml的代码: <?xml version"1.0" encoding"utf-8"?> <shape xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools…...
MySQL约束管理
介绍 MySQL约束管理是指在MySQL数据库中定义和管理数据约束的过程。数据约束用于维护数据的完整性和一致性,确保数据在表中的存储符合特定的规则。通过约束,可以防止不符合要求的数据被插入或更新,从而保护数据库的质量。 约束管理的主要内…...
拯救者y7000p 打开XMP
拯救者y7000p 打开XMP 拯救者bios隐藏功能 第一步、开机按F2进入bios 第二步、点击more settings 第三步、依次按Fnrn再按F12保存重启 第四步、再进bios,点击more settings则显示更多可调制选项,可找到内存超频功能,进行xmp超频 如果第三步失…...
2024 Rust现代实用教程Iterator迭代器
文章目录 一、迭代与循环1.循环2.迭代iteration3.区别 二、Intoiterator、Iterator和Iter之间的关系1.Intolterator2.Iterator Trait3. 源码中经常出现的iter 三、获取迭代器的三种方法iter(),iter_mut()和into_iter()1.iter()方法2.iter_mut()方法3.into_iter()方法---尽量写 …...
基于SpringBoot司机信用评价的货运管理系统【附源码】
基于SpringBoot司机信用评价的货运管理系统 效果如下: 系统主页面 系统注册页面 司机注册页面 管理员主页面 订单评价页面 货物信息页面 个人信息页面 研究背景 随着我国物流行业的迅猛发展,货运管理系统的效率与安全性日益受到重视。在货运过程中&am…...
使用PostgreSQL进行高效数据管理
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用PostgreSQL进行高效数据管理 PostgreSQL简介 安装PostgreSQL 在Ubuntu上安装PostgreSQL 在CentOS上安装PostgreSQL 在macOS上…...
数据库条件查询排查——引号故障
一、错误代码 $where_查询职汇总员[$value头[EmpCode]]$value职员[EmpCode]; 二、正常写法 $where_查询职汇总员[EmpCode]$value职员[EmpCode]; 三、原因 前一个是变量嵌套,这里不需要嵌套...
Python爬虫:揭开淘宝商品描述的神秘面纱
在这个信息爆炸的时代,我们每天都在和时间赛跑。作为一名Python开发者,你是否曾梦想拥有超能力,能够瞬间揭开淘宝商品描述的神秘面纱?今天,就让我们一起化身为代码界的“福尔摩斯”,使用Python爬虫技术&…...
动态规划— 一和零
class Solution {public int findMaxForm(String[] strs, int m, int n) {int[][] dp new int[m1][n1];//dp[i][j]表示i个0和j个1时的最大子集int oneNum 0, zeroNum 0;for(String str : strs){oneNum 0;zeroNum 0;for(char c : str.toCharArray()){if(c 0){zeroNum;}els…...
【Android】SharedPreferences存储中没有 Double 类型数据存储的解决方式
项目需求 存储定位数据,需要保存到小数点后10位数据。 需求分析 项目需求看起来很简单,其实实现起来也不难,我们直接使用SharedPreferences 存储一下就好了,反正也没其他要求。 好了,直接使用SharedPreferences 存…...
ffmpeg:视频字幕嵌入(GPU加速)
实现方案 参考指令 ffmpeg -i input_video.mp4 -vf "subtitlessubtitles.srt" output_video.mp4 解决因文件名称复杂导致的指令执行失败问题(引号给文件框起来) ffmpeg -i "A.mp4" -vf "subtitlesB.srt" "c.mp4&qu…...
DCN网络进行新冠肺炎影像分类
项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【BiLSTM模型实现电力数据预测】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现mnist手写数字识别】…...
C++中的继承——第二篇
一、继承与友元 友元关系不能够继承(就像父亲的朋友不一定是自己的朋友) 具体实现起来就是父类的友元可以访问父类的成员,但是不可以访问子类的成员 二、继承与静态成员 子类的静态成员变量本质上与父类的是同一份,存储在静态…...
动态规划探索篇
Leetcode63——不同路径Ⅱ 题目描述: 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人每次只能向下或者向右移动一步。 网格…...
Phi-4-mini-reasoning vLLM参数详解:context_length=131072配置与性能调优
Phi-4-mini-reasoning vLLM参数详解:context_length131072配置与性能调优 1. 模型概述 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员,它特别针对数学推理…...
AQRC智金未来:全球资产配置的算法革命已来
在康涅狄格州的格林威治(Greenwich),清晨的咖啡总是伴随着全球市场的开盘。这里不仅是顶级对冲机构的“隐居地”,更是AQRC智金未来核心策略的孵化场。很多人习惯于讨论涨跌,但对于智金未来而言,最迷人的数字…...
Wan2.2-I2V-A14B镜像免配置:所有路径预设标准化(/workspace/model /output)
Wan2.2-I2V-A14B镜像免配置:所有路径预设标准化(/workspace/model /output) 1. 镜像概述与核心优势 Wan2.2-I2V-A14B是一款专为文生视频任务优化的私有部署镜像,基于RTX 4090D 24GB显存显卡和CUDA 12.4环境深度定制。这个镜像的…...
社交媒体数据采集难题?MediaCrawler让复杂任务变简单
社交媒体数据采集难题?MediaCrawler让复杂任务变简单 【免费下载链接】MediaCrawler-new 项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new 在信息爆炸的数字时代,企业、研究机构和内容创作者常常需要从各大社交平台获取有价…...
从DCM到NII:医学影像数据处理中,为什么我劝你放弃保存回DCM格式?
从DCM到NII:医学影像数据处理中格式选择的深度实践指南 医学影像数据处理的流程中,文件格式的选择往往被忽视,却直接影响着后续分析的效率与兼容性。许多研究者习惯性地将处理后的数据保存回DCM格式,殊不知这可能在后续流程中埋下…...
LoadRunner Developer实战:如何在VSCode中集成性能测试(含Jenkins流水线配置)
LoadRunner Developer实战:VSCode集成与Jenkins流水线配置全指南 在DevOps实践中,性能测试左移已成为提升软件质量的关键策略。作为Micro Focus推出的开发者友好型工具,LoadRunner Developer让开发团队能在编码阶段就发现性能瓶颈。本文将手…...
JavaScript PPTX操作终极指南:5分钟掌握PPT自动化生成技巧
JavaScript PPTX操作终极指南:5分钟掌握PPT自动化生成技巧 【免费下载链接】js-pptx Pure Javascript reader/writer for PowerPoint 项目地址: https://gitcode.com/gh_mirrors/js/js-pptx 在当今数字化时代,自动化办公已经成为提升工作效率的关…...
iOS 15+ 设备越狱实战指南:A8-A11 芯片全流程适配方案
iOS 15 设备越狱实战指南:A8-A11 芯片全流程适配方案 【免费下载链接】palera1n Jailbreak for A8 through A11, T2 devices, on iOS/iPadOS/tvOS 15.0, bridgeOS 5.0 and higher. 项目地址: https://gitcode.com/GitHub_Trending/pa/palera1n 一、问题诊断&…...
ROS小车导航总是一顿一顿的?试试用yocs_smoother_velocity给速度上个‘柔顺剂’
ROS导航卡顿难题:用yocs_smoother_velocity实现丝滑运动控制 当你看着辛苦搭建的ROS导航机器人像醉汉一样踉踉跄跄地移动,急停急转让人心惊肉跳时,是否怀疑过人生?这背后往往不是路径规划算法的问题,而是速度指令的&qu…...
别急着重烧系统!卡在Starting Kernel时,先检查uboot的mmc分区表(以imx6ull为例)
嵌入式系统启动卡在Starting Kernel?先别急着重烧系统! 当你满怀期待地按下开发板电源键,串口终端却无情地定格在"Starting kernel..."这一行时,那种挫败感每个嵌入式开发者都深有体会。大多数人的第一反应是怀疑内核镜…...
