java单元测试

如何进行Java 单元测试 Java 单元测试是指对软件中的最小可测试单元进行测试,以保证代码的质量和正确性,并且可以加速开发过程。本文将全面详细地介绍 Java 单元测试相关知识点,包括单元测试的定义、优点和流程、JUnit 测试框架、Mockito 框架、持续集成、代码覆盖率和测试驱动开发等,希望读者能够了解这些知识点,并更好地应用它们来提升自己的开发水平。单元测试的定义单元测试是指对软件中的最小可测试单元进行测试,包括函数、方法和类等。它可以独立地测试每个组件,以保证代码的质量和正确性,并且可以加速开发过程。 阅读详情

这里是IT修真院分享课,今天要分享的主题是

【java单元测试】

一、什么是单元测试
单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。

比如对方法testOne(double a),我们可以编写出以下几个测试用例:

输入正数,比如1、1.2、0.99,期待返回值与输入相同;

输入负数,比如-1、-1.2、-0.99,期待返回值与输入相反;

输入0,期待返回0;

输入非数值类型,比如""、[]、{},期待抛出Error。

把上面的测试用例放到一个测试模块里,就是一个完整的单元测试。

如果单元测试通过,说明我们测试的这个函数能够正常工作。如果单元测试不通过,要么函数有bug,要么测试条件输入不正确,总之,需要修复使单元测试能够通过。

单元测试通过后有什么意义呢?如果我们对abs()函数代码做了修改,只需要再跑一遍单元测试,如果通过,说明我们的修改不会对abs()函数原有的行为造成影响,如果测试不通过,说明我们的修改与原有行为不一致,要么修改代码,要么修改测试。

这种以测试为驱动的开发模式最大的好处就是确保一个程序模块的行为符合我们设计的测试用例。在将来修改的时候,可以极大程度地保证该模块行为仍然是正确的。

单元测试还具有一下几个好处:

能够协助程序员尽快找到BUG的具体位置

能够让程序员对自己的程序更有自信

能够让程序员在提交项目之前就将代码变的更加健壮

能够协助程序员更好的进行开发

能够向其他程序员展现你的程序该如何调用

能够让项目主管更了解系统的当前状况

二、单元测试的流程
1、准备测试类
新建一个测试类,这点可以依靠编程工具的插件自动生成测试类(比如IDEA的JUnit Generator),也可以自己手动建立。

2、执行测试的业务
在测试类中引入你所需要的类与包,测试时可以使用junit jar包辅助也可以不用,直接main方法运行要测试的代码、业务。

3、验证测试的数据
通过一些可以做日志的jar包(比如log4j),在各个测试的数据前后将其输出出来,方便观察测试过程中代码的运行情况.也可以直接system.out.println(),自己设置一下方便观看的输出格式。

代码试例:

使用main方法加system.out.println()的一个小例子

public static void main (String[] args) throws Exception {
Map<String, String> keyMap = RSAUtils.createKeys(1024);
String publicKey = keyMap.get(“publicKey”);
String privateKey = keyMap.get(“privateKey”);
System.out.println(“公钥: \n\r” + publicKey);
System.out.println(“私钥: \n\r” + privateKey);

System.out.println("公钥加密——私钥解密");
String str = "sadhjaksdjaf";
System.out.println("\r明文:\r\n" + str);
System.out.println("\r明文大小:\r\n" + str.getBytes().length);
String encodedData = RSAUtils.publicEncrypt(str, RSAUtils.getPublicKey(publicKey));
System.out.println("密文:\r\n" + encodedData);
String decodedData = RSAUtils.privateDecrypt(encodedData, RSAUtils.getPrivateKey(privateKey));
System.out.println("解密后文字: \r\n" + decodedData);
教你如何更好的编写JAVA单元测试 如何更好的编写JAVA单元测试 如各位希望转载或引用,请注明出处,尊重原创,谢谢。如有疑问或错误,欢迎邮件沟通。 gitHub地址:https://github.com/thinkingfioa 邮箱地址:thinking_fioa@163.com 博客地址: https://blog.csdn.net/thinking_fioa gitHub项目地址:https://github.com/thinkingfioa/tech-summary gitHub项目代码地址:https://github.com/ 阅读详情

相关推荐

如何单元测试Java的private方法

问题 Java类中private方法只能被其所属类的调用,其他类只能望而却步,单元测试private方法也就一筹莫展。 尝试解法: 在测试时,手动将private改为public,测试完后再将其改回。 将测试方法写进private方法的所属类中,这样就能调用private方法了。 上述解法虽然可行,但这些解法或多或少地违背单元测试应遵守AIR原则。 单元测试在线上运行时,感觉像空气(AIR)那样透明,但在测试质量的保障上,却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。

KISS 1万+

Java基础单元测试

本篇博文主要讲解Java基础内容单元测试和Junit5的使用。

孤夜的博客 2万+

PS/2鼠标接口协议

一、PS/2鼠标接口        PS/2接口用于许多现代的鼠标和键盘,由IBM最初开发和使用。物理上的PS/2接口有两种类型的连接器:5脚的DIN和6脚的MINI-DIN。        二、鼠标的接口协议原理             PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。但是在相互传输中 ,主机是拥有总线控制权的

Ant's home 1万+

【单元测试】一文读懂java单元测试

单元测试入门

Hanson的博客 1万+

cosi-corr操作详细步骤

cosi-corr是一个可以加载到ENVI的软件包,由加利福尼亚理工学院的François Ayoub,  Sébastien Leprince,  and Lionel Keene开发,并且提供源代码,该软件受到了NSF的资助。软件的主要功能是可以满足各种影响的正射校正和影像配准。 针对下载下来的软件包参考《cosi-corr_guide.pdf》,进行配置使用具体详细过程如下: (本机环境

u013299471的专栏 1万+

速腾RS-LiDAR-16激光雷达ROS配置全攻略:从硬件连接到Rviz点云可视化

本文详细介绍了速腾RS-LiDAR-16激光雷达在ROS环境中的配置与使用全攻略,涵盖硬件连接、网络配置、ROS驱动安装及Rviz点云可视化等关键步骤。通过实战案例和技术解析,帮助开发者快速实现激光雷达数据采集与处理,提升机器人感知系统的部署效率。

ooo22的博客 248

一文读懂java单元测试

验证代码功能:单元测试可以验证代码的各个功能是否按照预期工作。通过编写测试用例覆盖代码的不同路径和逻辑条件,可以确保每个单元都能正确执行其设计的功能。提供反馈和调试:单元测试可以快速发现代码中的错误和缺陷。当测试用例失败时,它们提供了有关出现问题的具体位置和原因的反馈信息,有助于开发人员进行调试和修复。改善代码质量:通过编写单元测试,可以促使开发人员编写可测试的、模块化的代码。这有助于降低代码的耦合性、增加代码的可维护性,并提高代码的整体质量。支持重构和重构安全性:单元测试为代码重构提供了保障。

yuanchengfu0910的博客 3171

YOLOv11改进 | 主干/Backbone篇 | 利用RT-DETR主干网络PPHGNetV2助力yolov11有效涨点(轻量化目标检测网络)

本文给大家带来利用RT-DETR模型主干HGNet去替换YOLOv11的主干,RT-DETR是今年由百度推出的第一款实时的ViT模型,其在实时检测的领域上号称是打败了YOLO系列,其利用两个主干一个是HGNet一个是ResNet,其中HGNet就是我们今天来讲解的网络结构模型,这个网络结构目前还没有推出论文,所以其理论知识在网络上也是非常的少,我也是根据网络结构图进行了分析(精度mAP提高0.05)。YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备​目录一、本文介绍。

Snu77的博客 3719

java-单元测试

单元测试(unit testing)

Ghertl的博客 1677

华为OD机试双机位C卷-停车场收入统计 (Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 停车场收入统计,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 停车场收入统计。

qq_45776114的博客 2185

备战2025数学建模国赛(算法65):Fisher判别分析

在数学建模竞赛中,我们常常会遇到需要对研究对象进行分类或判断的问题。例如,根据西瓜的各类指标判断其好坏,根据经济数据判断一个国家的发展程度,或根据病人的医学影像特征判断其是否患病。这类“分类判别”问题,是建模竞赛中最常见的题型之一。Fisher判别分析(或称线性判别分析,LDA)作为一种经典的、有监督的降维与分类方法,因其模型简洁、可解释性强、计算高效而备受青睐。

YOLO 421

Java Junit单元测试

该文详解讲解了Junit单元测试在不同场景的各种使用方式

qq_49474843的博客 2146

高性能优化的本质

在很早之前,处理器性能的提升一般是通过减小元器件的尺寸,增加元器件的数量,提高主频来实现,这也是摩尔定律所说的,但是由于功耗的影响,主频不能一直增加。后来,由于英伟达的GPU的并行计算的出现,逐渐打破摩尔定律,人们利用多核,SIMD,SIMT来处理大量相同计算的数据,这极大的提高了效率。计算机的算力得到了巨大的提升,但是并行是困难的,对于有数据依赖的程序来说,处理并行是一件及其困难的事,但对于一些简单的数学库的计算,并行的实现相对简单。

发狂的小花的博客 273

JAVA单元测试Mock实践

本文介绍了Mock背景,常见的单元测试场景以及对应的测试方法,最后简单介绍了powermockit测试框架。理解本文内容,会带你入门java单元测试,其中第一章、第二章需要重点理解。

jainszhang的博客 6176

税务某局 webpack 登录接口逆向分析

我们再回到接口逻辑去看一下,发现每次请求前,还有两个接口,getpublickey和sendsm4,这里分析了一下调用逻辑,sm4这个接口用到一个参数是由publickey返回的一个参数而来,这个参数又经过内部加密处理,我们找到这个参数加密的地方,大概是在这个位置。我们还是顺着逻辑将加载器扣下来,然后用一个变量去接收,有了加载器,我们直接把加密代码扣下来做下处理,把一些用到的参数整理下如下。打上断点分析后,_utils_getuuid这个很长的变量也是加载器的一个函数,我们将这段代码也扣下来,如下。

码王吴彦祖的博客 402

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java单元测试用例的编写

作者:阿里技术 链接:https://www.zhihu.com/question/449470796/answer/1781246366 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 编写Java单元测试用例,其实就是把“复杂的问题要简单化”——即把一段复杂的代码拆解成一系列简单的单元测试用例;写好Java单元测试用例,其实就是把“简单的问题要深入化”——即学习一套方法、总结一套模式并应用到实践中。这里,作者根据日常的工作经验,总结了一些Java单元测试技巧,以供.

明阳 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java 单元测试指南

本文不仅介绍了单元测试的规范,还结合实际开发案例,演示了如何编写单元测试。我们使用了 JUnit、H2、Surefire 等常用的单元测试工具。如果你希望深入了解这些工具,可以查阅相关资料。本文基于企业内部实际应用的工作流程,通过教程指导你编写符合规范的单元测试,从而提升代码质量和项目的可靠性。

trl_jdi的博客 3591

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java中的单元测试

java单元测试概述 单元测试(unit testing),是指对软件中最小可测试单元进行检查和验证。单元测试是软件质量最简单有效的保证,是目标代码最清晰有效的文档,是代码重构的保障,是回归测试和持续集成的基石,可以优化目标代码的设计。 junit JUnit4通过注解的方式来识别测试方法。 常用注解(按执行顺序排序) @BeforeClass :针对所有测试,也就是整个测试类中,在所有测试方法...

iweb_coding的博客 991

java单元测试之junit之实战

1 编写该文章的起因 博主是一枚小新,经常挖坑填坑。最近在工作中遇到了这样一种情况。某天小伙伴说博主写得一个方法有问题,并且相应的测试类也跑不通。博主一直秉着磨刀不误砍柴工的思想,测试类都是写得好好地并且能杠杠运行的!怀着好奇,经过一番debug,发现某句代码抛出了空指针,如下 String url = linkedService.getUrlById(id); getUrlById是通...

mcrwayfun,欢迎你 4万+

java单元测试(java单元测试)

Java单元测试中的伪对象有哪些呢? 。。 value); public void setDefaultThrowable(Throwable throwable); public void setDefaultVoidCallable(); public void setMatcher(Argument...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 344

Java单元测试如何写

单元测试的理念其实⼀直是编程的⼀部分。我们第⼀次编写计算机程序时,肯定会输⼊⼀些样本数据,查看其是否按照你的期望执⾏。如果结果不符合预期,你肯定在代码⾥穿插过⼤量的System.out.println,确保每个原⼦节点都符合预期。这个过程其实就是把复杂问题拆解成原⼦化的问题、逐⼀攻破的过程。单元测试的⽬的也⼀样,是保障软件程序中每个最⼩单位的正确性,从⽽保障由最⼩单位构建起来的复杂系统的正确性。

xxyaya666的博客 1262

Java中的单元测试

JUnit是Java最流行的测试框架之一。最新的版本是JUnit 5,它引入了许多新特性和改进,使测试更加方便和高效。@Test:标记一个方法为测试方法。:在每个测试方法执行之前运行,用于初始化测试环境。@AfterEach:在每个测试方法执行之后运行,用于清理测试环境。@BeforeAll:在所有测试方法执行之前运行一次,用于全局初始化。@AfterAll:在所有测试方法执行之后运行一次,用于全局清理。

weixin_46372265的博客 1011

java 单元测试培训_Java 单元测试

1. 单元测试单元测试的目的?单元测试是编写测试代码,用以检测特定的、明确的、细颗粒的功能! 严格来说,单元测试只针对功能点进行测试,不包括对业务流程正确性的测试。目前开发所用的单元是Junit框架,在大多数java的开发环境中已经集成,可以方便开发自己调用!单元测试做什么?一般来说,一份单元测试主要包括以下几个方面:接口功能性测试接口功能的正确性,即保证接口能够被正常调用,并输出有效数据!是否...

weixin_32289847的博客 774

Java之单元测试(JUnit单元测试框架)

一、概述 单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,所以单元测试就是针对Java方法的测试,进而检查方法的正确性。 常规测试有什么问题? 只有一个main方法,如果一个方法的测试失败了,其他方法会受到影响。 无法得到测试的结果报告,需要程序员自己去观察测试是否成功 无法实现自动化测试 JUnit单元测试框架 JUnit是使用Java实现的单元测试框架,开源,几乎所有IDE都集成了JUnit,目前最新版本是5 优点 二、实操 ...

weixin_66813230的博客 1万+

java单元测试之mock篇

java单元测试之mock篇

qq_45887180的博客 1万+
上一篇: string数组怎么定义
下一篇: select* from table的弊端
learning__java
博客等级 码龄8年 87粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值