当前位置: 首页 > article >正文

java高级 -Junit单元测试

Junit单元测试就是针对最小的功能:方法,编写测试代码对其进行正确性测试。用main方法进行测试的弊端是一个方法测试失败可能会影响别的方法的测试,也无法得到测试报告,需要我们自己观察数据是否正确。

此时,我们就需要使用Junit单元测试框架,它是由第三方公司开发出来的。

优点:可以灵活的编写测试代码,可以针对某个方法进行测试,也支持一键测试所有方法,且各自独立。

不需要程序员分析测试结果,会给出测试报告。

1、为需要测试的业务类,定义对应的测试类,并为每个业务方法,编写测试方法。

测试方法上必须有@Text注解,当只需要启动单一测试方法时,在该方法内右键选Junit运行即可。测试通过是绿色,没通过是红色。

业务类

package junitDemo;public class StringUtil {public static void PrintNumber(String name){if(name==null){System.out.println("参数不能为null");return;}System.out.println("名字长度是:"+name.length());}/*** 求字符串最大索引*/public static int getMaxIndex(String str){if(str == null ||"".equals(str))return -1;return str.length()-1;}
}

测试方法

package junitDemo;import org.junit.Assert;
import org.junit.Test;//测试类:junit单元测试框架,对业务类中的业务方法进行正确性测试
public class StringUtilText {//测试方法:必须是公开public,无参,无返回值//测试方法必须加上@Test注解@Testpublic void textPrintNumber() {//测试步骤StringUtil.PrintNumber("张三abc");//测试用例StringUtil.PrintNumber("");StringUtil.PrintNumber(null);}@Testpublic void testGetMaxIndex() {int index = StringUtil.getMaxIndex("abcdefg");int index2 = StringUtil.getMaxIndex(null);int index3 = StringUtil.getMaxIndex("");//做断言,测试结果与预期结果是否一致Assert.assertEquals("本轮测试失败,业务获取的最大索引有问题",6,index);Assert.assertEquals("本轮测试失败,业务获取的最大索引有问题",-1,index2);Assert.assertEquals("本轮测试失败,业务获取的最大索引有问题",-1,index3);}
}

在执行方法时,可以定义一个变量存储返回值,然后在后续代码进行断言,如果返回值与预期结果一致,则标绿,不一致则标红

http://www.lryc.cn/news/2386050.html

相关文章:

  • 在 UVM验证环境中,验证 Out-of-Order或 Interleaving机制
  • V9数据库替换授权
  • 勇闯Chromium—— Chromium的多进程架构
  • Go语言中常量的命名规则详解
  • 软件质量保证与测试实验
  • 历年华东师范大学保研上机真题
  • 【C++】什么是静态库?什么是动态库?
  • 项目阅读:Instruction Defense
  • springboot中拦截器配置使用
  • 用 Python 构建自动驾驶的实时通信系统:让车辆“交流”起来!
  • 在机器学习中,L2正则化为什么能够缓过拟合?为何正则化等机制能够使一个“过度拟合训练集”的模型展现出更优的泛化性能?正则化
  • day36 python神经网络训练
  • k8s部署ELK补充篇:kubernetes-event-exporter收集Kubernetes集群中的事件
  • 【Excel VBA 】窗体控件分类
  • C++性能相关的部分内容
  • Spring Boot 项目中常用的 ORM 框架 (JPA/Hibernate) 在性能方面有哪些需要注意的点?
  • 基于大模型的大肠癌全流程预测与诊疗方案研究报告
  • 解决DeepSeek部署难题:提升效率与稳定性的关键策略
  • AI进行提问、改写、生图、联网搜索资料,嘎嘎方便!
  • GStreamer开发笔记(四):ubuntu搭建GStreamer基础开发环境以及基础Demo
  • 2021年认证杯SPSSPRO杯数学建模A题(第二阶段)医学图像的配准全过程文档及程序
  • CV中常用Backbone-3:Clip/SAM原理以及代码操作
  • RPC 协议详解、案例分析与应用场景
  • dify-plugin-daemon的.env配置文件
  • 【Python】开发工具uv
  • 《技术择时,价值择股》速读笔记
  • Python可视化设计原则
  • SAP重塑云ERP应用套件
  • 2025.5.25总结
  • (九)PMSM驱动控制学习---无感控制之高阶滑膜观测器