单元测试mockito(一)

news2025/1/17 23:11:44

1.单元测试

1.1 单元测试的特点


●配合断言使用(杜绝System.out)
●可重复执行
。不依赖环境
●不会对数据产生影响
●spring的上下文环境不是必须的
●一般都需要配合mock类框架来实现


1.2 mock类框架使用场景


要进行测试的方法存在外部依赖(如db,redis,第三方接口调用等),为了能够专注于对该方法单元)的逻辑进行测试,就希望能虚拟出外部依赖,避免外部依赖成为测试的阻塞项,一般都是测试service层即可。


1.3常用mock类框架


mock类框架:用于mock外部依赖


1.3.1 mockito


名称:ito:input to output
官网: https://site.mockito.org
官网文档:https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html

限制:老版本对于final class、final method、static method、private method均不能被mockito mock,目前已支持fmar ciass、final method、static method的mock,具体可以参考官网

原理:bytebuddy,教程:https://www.bilibili.com/video/BV1G24y1a7bd


1.3.2 easymock


1.3.3 powermock


官网:https://github.com/powermock/powermock
与mockito的版本支持关系:https://gitee.com/mirrors/powermock/wikis/Mockito#supported-versions
对mockito或easymock的增强


1.3.4jMockit


二、mockito的单独使用


2.1 mock对象与spy对象


2.2初始化mock/spy对象的方式

2.3参数匹配

拦截类型的任意对象 :  modifyById(ArgumentMatchers.any(类.class))

测试校验

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

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

相关文章

3.31学习总结

(本次学习总结,总结了目前学习java遇到的一些关键字和零碎知识点) 一.static关键字 static可以用来修饰类的成员方法、类的成员变量、类中的内部类(以及用static修饰的内部类中的变量、方法、内部类),另外可以编写static代码块来优化程序性…

权限问题(Windows-System)

方法:用命令来写一个注册表的脚本 ?System是最高级用户,但不拥有最高级权限 编写两文档:system.reg 和 remove.reg,代码如下: system.reg: Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\*…

YOLOv5改进 | 低照度检测 | 2024最新改进CPA-Enhancer链式思考网络(适用低照度、图像去雾、雨天、雪天)

一、本文介绍 本文给大家带来的2024.3月份最新改进机制,由CPA-Enhancer: Chain-of-Thought Prompted Adaptive Enhancer for Object Detection under Unknown Degradations论文提出的CPA-Enhancer链式思考网络,CPA-Enhancer通过引入链式思考提示机制&am…

Proteus 12V to 5V buck电路仿真练习及遇到的一些问题汇总

基础电路仿真实验记录贴!!!如有写的不对的地方欢迎交流指正!!! 平台:PC win10 软件:Proteus8.10 仿真目标:buck降压电路(PWM控制输出电压) 写在…

《Lost in the Middle: How Language Models Use Long Contexts》AI 解读

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

MySQL核心命令详解与实战,一文掌握MySQL使用

文章目录 文章简介演示库表创建数据库表选择数据库删除数据库创建表删除表向表中插入数据更新数据删除数据查询数据WHERE 操作符聚合函数LIKE 子句分组 GROUP BY HAVINGORDER BY(排序) 语句LIMIT 操作符 分页查询多表查询-联合查询 UNION 操作符多表查询-连接的使用-JOIN语句编…

选择排序及其优化

目录 思想: 代码: 代码优化: 需要注意的特殊情况: 可能出现的所有特殊情况: 优化完成代码: 思想: 每一次遍历数组,选择出最大或最小的数,将其与数组末尾或首位进行…

Oracle Solaris 11.3开工失败问题处理记录

1、故障现像 起初是我这有套RAC有点问题,我想重启1个节点,结果发现重启后该节点的IP能PING通,但SSH连不上去,对应的RAC服务也没有自动启动。 操作系统是solaris 11.3。由于该IP对应的主机是LDOM,于是我去主域上telnet…

汇编语言第四版-王爽第2章 寄存器

二进制左移四位,相当于四进制左移一位。 debug命令实操,win11不能启动,需要配置文件 Windows64位系统进入debug模式_window10系统64位怎么使用debugger-CSDN博客

扫雷(蓝桥杯)

题目描述 小明最近迷上了一款名为《扫雷》的游戏。其中有一个关卡的任务如下, 在一个二维平面上放置着 n 个炸雷,第 i 个炸雷 (xi , yi ,ri) 表示在坐标 (xi , yi) 处存在一个炸雷,它的爆炸范围是以半径为 ri 的一个圆。 为了顺利通过这片土…

开源博客项目Blog .NET Core源码学习(13:App.Hosting项目结构分析-1)

开源博客项目Blog的App.Hosting项目为MVC架构的,主要定义或保存博客网站前台内容显示页面及后台数据管理页面相关的控制器类、页面、js/css/images文件,页面使用基于layui的Razor页面(最早学习本项目就是想学习layui的用法,不过最…

网络安全 | 网络攻击介绍

关注wx:CodingTechWork 网络攻击 网络攻击定义 以未经授权的方式访问网络、计算机系统或数字设备,故意窃取、暴露、篡改、禁用或破坏数据、应用程序或其他资产的行为。威胁参与者出于各种原因发起网络攻击,从小额盗窃发展到战争行为。采用各…

C语言自定义类型

本篇文章主要介绍三种自定义类型,分别是:结构体、联合体、枚举。 一.结构体 1.结构体类型的声明 直接举一个例子: //一本书 struct s {char name[10]; //名称char a; //作者int p; //价格 }; 2.特殊的声明 结构体也可以不写结构体标…

NVIDIA Jetson Xavier NX入门-镜像为jetpack5(3)——pytorch和torchvision安装

NVIDIA Jetson Xavier NX入门-镜像为jetpack5(3)——pytorch和torchvision安装 镜像为jetpack5系列: NVIDIA Jetson Xavier NX入门-镜像为jetpack5(1)——镜像烧写 NVIDIA Jetson Xavier NX入门-镜像为jetpack5&#…

医院陪诊管理系统(源码+文档)

TOC) 文件包含内容 1、搭建视频 2、流程图 3、开题报告 4、数据库 5、参考文献 6、服务器接口文件 7、接口文档 8、任务书 9、功能图 10、环境搭建软件 11、十六周指导记录 12、答辩ppt模板 13、技术详解 14、前端后台管理(管理端程序) 15、项目截图 1…

CCIE-07-OSPF_TS

目录 实验条件网络拓朴逻辑拓扑实现目标 环境配置开始Troubleshooting问题1. R22的e0/0接口配置了网络类型问题2. R22和R21之间的IP地址子网掩码长度不一致问题3. R21的e0/0口配置了被动接口问题4. R3配置了不一致的hello-time问题5. R21配置了max-metric导致路由无效问题6. R3…

LLM大模型可视化-以nano-gpt为例

内容整理自:LLM 可视化 --- LLM Visualization (bbycroft.net)https://bbycroft.net/llm Introduction 介绍 Welcome to the walkthrough of the GPT large language model! Here well explore the model nano-gpt, with a mere 85,000 parameters. 欢迎来到 GPT 大…

GPUPixel:以光速打造美丽,开源跨平台的实时美颜滤镜库,赋能您的应用尽显商业级影像魅力!- 精选真开源,释放新价值。

GPUPixel:以光速打造美丽,开源跨平台的实时美颜滤镜库,赋能您的应用尽显商业级影像魅力!- 精选真开源,释放新价值。 概览 GPUPixel是一款精心设计并采用现代C11标准编写的高性能图像和视频AI美颜效果处理库,其核心价值…

vue 视频添加水印

1.需求背景 其实腾讯云点播的api也支持视频水印,但是只有单个水印,大概效果是这样子的,不满足我们的需求,我们的需求是需要视频中都是水印。 腾讯云点播水印 项目需求的水印(主要是防录屏,最后的实现效果是这样&…

【前端面试3+1】06继承方式及优缺点、缓存策略、url输入到渲染全过程、【二叉树中序遍历】

一、继承有哪些方式?以及优缺点 继承的方式包括原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承和组合式继承。 1.原型链继承: 实现方式:将子类的原型指向父类的实例来实现继承。优点:简单易懂,代码量少。…