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

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.xdnf.cn/news/635851.html

相关文章:

  • JVM八股速查
  • MySQL的索引
  • leetcode2081. k 镜像数字的和-hard
  • 1.altium designer16 软件安装
  • 【短距离通信】【WiFi】WiFi7关键技术之4096-QAM、MRU
  • 深度图数据增强-形态学腐蚀操作
  • 历年哈尔滨工业大学(深圳)保研上机真题
  • MySQL-----表的操作
  • 【b站计算机拓荒者】【2025】微信小程序开发教程 - chapter3 项目实践 -1 项目功能描述
  • 代码随想录第43天:图论4(最小生成树、拓扑排序)
  • python学习打卡day36
  • 【node.js】node.js 安装详细步骤教程【安装在D盘】
  • Vite 构建原理 的深度解析
  • Vue3 + TypeScript + el-input 实现人民币金额的输入和显示
  • react 脚手架
  • mysql数据库之备份
  • 前端的core-js是什么?有什么作用?
  • 基于javaweb的SpringBoot体检管理系统设计与实现(源码+文档+部署讲解)
  • #RabbitMQ# 消息队列入门
  • 嵌入式预处理链接脚本lds和map文件
  • ​​IIS文件上传漏洞绕过:深入解析与高效防御​
  • MySQL索引失效的12种场景及解决方案
  • 深入理解 Linux 的 set、env 和 printenv 命令
  • ZLG USBCANFD python UDS刷写脚本
  • Nature图形解析与绘制—热图的绘制及深入解析
  • React整合【ECharts】教程002:折线图的构建和基本设置
  • 初学Transformer架构和注意力机制
  • OpenCV 第7课 图像处理之平滑(二)
  • QML与C++交互2
  • 历年哈尔滨工业大学保研上机真题