单元测试
1. 单元测试Junit
1.1 什么是单元测试?(掌握)
对部分代码进行测试。
1.2 Junit的特点?(掌握)
-
是一个第三方的工具。(把别人写的代码导入项目中)(专业叫法:导jar包)
-
如果运行结果显示绿色,表示运行结果是正确的。
如果运行结果显示红色,表示运行结果是错误的。
1.3 基本用法:(掌握)
1,一定要先写一个方法。
2,在这个方法的上面写@Test
3,鼠标点一下@Test 按alt + 回车,点击Junit4
此时就可以自动导包。
如果自动导包失败(连接外网,或者自己手动导包)
如果导包成功在左下角就会出现Junit4的相关jar包
手动导包(掌握)
1,在当前模块下,右键新建一个文件夹(lib)
2,把今天资料里面的两个jar包,拷贝到lib文件夹里面
3,选中两个jar右键点击add as a lib…
4,到代码中,找到@Test,按alt + 回车,再来导入。
运行测试代码(掌握)
- 只能直接运行无参无返回值的非静态方法
- 想要运行谁,就右键点击哪个方法。如果想要运行一个类里面所有的测试方法,选择类名,有点点击即可。
Junit正确的打开方式(正确的使用方式)(掌握)
注意点:并不是直接在要测试的方法上面直接加@Test
原因:因为要测试的方法有可能是有参数的,有返回值,或者是静态的。
正确的使用方式:(掌握)
1,新建测试类
2,新建测试方法(要测试的方法名 + Test) methodTest
3,在这个方法中直接调用要测试的方法
4,在测试方法的上面写@Test
代码示例:
//真正用来测试的类
//测试用例(测试类)
public class JunitTest {//在这个类里面再写无参无返回值的非静态方法//在方法中调用想要测试的方法@Testpublic void method2Test(){//调用要测试的方法JunitDemo1 jd = new JunitDemo1();jd.method2(10);}
}
实际开发中单元测试的使用方式(掌握)
需求:测试File中的delete方法,写的是否正确(掌握)
开发中的测试原则:
不污染原数据。
代码示例:
public class JunitDemo3 {//在实际开发中,真正完整的单元测试该怎么写?//前提://以后在工作的时候,测试代码不能污染原数据。(修改,篡改)//1.利用Before去对数据做一个初始化的动作//2.利用Test真正的去测试方法//3.利用After去还原数据//需求:测试File类中的delete方法是否书写正确???@Beforepublic void beforemethod() throws IOException {//先备份File src = new File("C:\\Users\\moon\\Desktop\\a.txt");File dest = new File("C:\\Users\\moon\\Desktop\\copy.txt");FileInputStream fis = new FileInputStream(src);FileOutputStream fos = new FileOutputStream(dest);int b;while((b = fis.read()) != -1){fos.write(b);}fos.close();fis.close();}//作为一个标准的测试人员,运行完单元测试之后,不能污染原数据//需要达到下面两个要求://1.得到结果//2.a.txt还在而且其他的备份文件消失@Testpublic void method(){File file = new File("C:\\Users\\moon\\Desktop\\a.txt");boolean delete = file.delete();//检查a.txt是否存在boolean exists = file.exists();//只有同时满足了下面所有的断言,才表示delete方法编写正确Assert.assertEquals("delete方法出错了",delete,true);Assert.assertEquals("delete方法出错了",exists,false);}@Afterpublic void aftermethod() throws IOException {//还要对a.txt做一个还原File src = new File("C:\\Users\\moon\\Desktop\\copy.txt");File dest = new File("C:\\Users\\moon\\Desktop\\a.txt");FileInputStream fis = new FileInputStream(src);FileOutputStream fos = new FileOutputStream(dest);int b;while((b = fis.read()) != -1){fos.write(b);}fos.close();fis.close();//备份数据要删除src.delete();}
}
作业:
测试Properties类中的store方法是否书写正确?
开发心得:
1.Before 准备数据
2.Test 测试方法
3.After 还原
Before
准备数据
1.创建Properties的对象
2.put数据到集合当中
//只不过在下面的方法中,我们也需要用到Properties的对象,所以写完之后要挪到成员位置
Test
调用store方法,保存数据到本地文件断言1:判断当前文件是否存在
断言2:文件的大小一定是大于0
断言3:再次读取文件中的数据,判断是否跟集合中一致结论:如果所有的断言都通过了,表示store方法是正确的
After
把本地文件给删除
扩展点:
在单元测试中,相对路径是相对当前模块而言的。
代码示例:
File file = new File("aweihaoshuai.txt");
file.createNewFile();
//此时是把aweihaoshuai.txt这个文件新建到模块中了。
相关文章:
单元测试
1. 单元测试Junit 1.1 什么是单元测试?(掌握) 对部分代码进行测试。 1.2 Junit的特点?(掌握) 是一个第三方的工具。(把别人写的代码导入项目中)(专业叫法:…...

科技云报道:AI+云计算共生共长,能否解锁下一个高增长空间?
科技云报道原创。 在过去近一年的时间里,AI大模型从最初的框架构建,逐步走到落地阶段。 然而,随着AI大模型深入到千行百业中,市场开始意识到通用大模型虽然功能强大,但似乎并不能完全满足不同企业的个性化需求。 大…...

ReactPy:使用 Python 构建动态前端应用程序
在 Web 开发领域,ReactJS 已成为主导者,为开发人员提供了用于创建动态和交互式用户界面的强大工具集。但是,如果您更喜欢 Python 的多功能性和简单性作为后端,并且希望在前端也利用它的功能,该怎么办?ReactPy 是一个 Python 库,它将熟悉的 ReactJS 语法和灵活性带入了 P…...
安全攻防基础以及各种漏洞库
安全攻防基础以及各种漏洞库 信息搜集企业信息搜集1. 企业架构2. ICP备案查询,确定目标子域名3. 员工信息(搜集账号信息、钓鱼攻击)4. 社交渠道 域名信息搜集IP搜集信息泄露移动端搜集打点进内网命令和控制(持续控制)穿…...

护眼灯值不值得买?开学给孩子买什么样的护眼台灯
如果不想家里的孩子年纪小小的就戴着眼镜,从小就容易近视,那么护眼灯的选择就非常重要了,但是市场上那么多品类,价格也参差不齐,到底怎么选呢?大家一定要看完本期内容。为大家推荐五款热门的护眼台灯 一、…...

windows安装Scala
Windows安装Scala 下载地址:https://downloads.lightbend.com/scala/2.11.11/scala-2.11.11.zip 解压完成之后 配置环境变量...

API类型和集成规范指南
在我们的常见应用中,往往包含着大量服务于各种数据交换的API类型、以及各种常见的API架构与协议。下面,我将从集成的角度和您讨论,在准备将多个服务相互集成时,使用不同类型、架构和协议的API意味着什么?我们可以使用哪些工具&am…...

[ES]mac安装es、kibana、ik分词器
一、安装es和kibana 1、创建一个网络,网络内的框架(eskibana)互联 docker network create es-net 2、下载es和kibana docker pull elasticsearch:7.12.1 docker pull kibana:7.12.1 3、运行docker命令部署单点eskibana(用来操作es) doc…...

YOLO目标检测——视觉显著性检测MSRA1000数据集下载分享
MSRA1000数据集是一个常用的视觉显著性检测数据集,它包含了1000张图像和对应的显著性标注。在以下几个应用场景中,MSRA1000数据集可以发挥重要作用:图像编辑和后期处理、图像检索和分类、视觉注意力模型、自动驾驶和智能交通等等 数据集点击下…...

【基于空间纹理的残差网络无监督Pansharpening】
Unsupervised Pansharpening method Using Residual Network with Spatial Texture Attention (基于空间纹理的残差网络无监督泛锐化方法) 近年来,深度学习已经成为最受欢迎的泛锐化工具之一,许多相关方法已经被研究并反映出良好…...

2023年信息安全管理与评估(赛项)评分标准第三阶段夺旗挑战CTF(网络安全渗透)
全国职业院校技能大赛 高职组 信息安全管理与评估 (赛项) 评分标准 第三阶段 夺旗挑战CTF(网络安全渗透) 竞赛项目赛题 本文件为信息安全管理与评估项目竞赛-第三阶段赛题,内容包括:夺旗挑战CTF(…...

开启智能时代:深度解析智能文档分析技术的前沿与应用
开启智能时代:深度解析智能文档分析技术的前沿与应用 本章主要介绍文档分析技术的理论知识,包括背景介绍、算法分类和对应思路。通过本文学习,你可以掌握:1. 版面分析的分类和典型思想 2. 表格识别的分类和典型思想 3. 信息提取的…...

高级时钟项目
高级时钟项目 笔者来介绍一下一个简单的时钟项目,主要功能就是显示时间 1、背景 2、数码管版本(第一版) 3、OLED屏幕版本(第二版) 3.1、Boot 3.2、app 3.3、上位机 界面一:时间天气显示 界面二 &…...

跨境海淘攻略:如何实现自己批量养买家账号海淘
近年来,随着互联网的发展,网购已经成为人们日常生活中不可或缺的一部分。不仅在国内购买商品,在跨境电商行业越来越成熟,很多的消费者开始选择购买国外平台商品,价格相比国内专柜来说会更为优惠。因此,海淘…...
【lua】在微软 windows 系统上安装 lua
https://sourceforge.net/projects/luabinaries...

系统学习Linux-PXE无人值守装机(附改密)
目录 pxe实现系统自动安装pxe工作原理 大致的工作过程如下: PXE的组件: 一、配置vsftpd 二、配置tftp 三、准备pxelinx.0文件、引导文件、内核文件 四、配置dhcp 配置ip 配置dhcp 五、创建default文件 六、新建测试主机用来测试装机效果 七、…...
关于web3.0平台的详细说明
Web3.0是指下一代互联网的发展阶段,它以区块链技术为基础,具有去中心化、安全性强、用户数据私密性保护等特点。在Web3.0的社交平台中,人们可以更好地掌控自己的数据,并获得更加开放和透明的社交体验。 以下是一些关于Web3.0社交…...
Git命令简单使用
1、上传仓库到 git 上传仓库到 git 上之前需要配置用户名和邮箱 git config --global user.name "user_name" git config --global user.email "email_id"在本地仓库中使用名称初始化 git init使用下面的命令将文件添加到仓库 # 添加一个或多个文件到暂…...
Flutter(十)网络请求和文件
目录 文件操作网络请求1.Dio库2.websocket3.JSON转Dart Model 文件操作 APP目录 Android 和 iOS 的应用存储目录不同,PathProvider (opens new window)插件提供了一种平台透明的方式来访问设备文件系统上的常用位置。该类当前支持访问两个文件系统位置:…...

Unity RenderStreaming 云渲染-黑屏
🥪云渲染-黑屏 网页加载出来了,点击播放黑屏 ,关闭防火墙即可!!!!...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...