【Java】Java(四十七):单元测试

news2024/11/28 16:39:28

文章目录

  • 1. 概述
  • 2. 特点
  • 3. 使用步骤
  • 4. 相关注解
  • 5. 疑惑: 有了main函数 为啥还要 单元测试
  • 6. 后记



在这里插入图片描述

1. 概述

JUnit是一个 Java 编程语言的单元测试工具。JUnit 是一个非常重要的测试工具

2. 特点

  • JUnit是一个开放源代码的测试工具。
  • 提供注解来识别测试方法。
  • JUnit测试可以让你编写代码更快,并能提高质量。
  • JUnit优雅简洁。没那么复杂,花费时间较少。
  • JUnit在一个条中显示进度。如果运行良好则是绿色;如果运行失败,则变成红色。

3. 使用步骤

  • 使用步骤

    1. 将junit的jar包导入到工程中 junit-4.9.jar
    2. 编写测试方法该测试方法必须是公共的无参数无返回值的非静态方法
    3. 在测试方法上使用@Test注解标注该方法是一个测试方法
    4. 选中测试方法右键通过junit运行该方法
  • 代码示例

    public class JunitDemo1 {
    	@Test
    	public void add() {
    		System.out.println(2 / 0);
    		int a = 10;
    		int b = 20;
    		int sum = a + b;
    		System.out.println(sum);
    	}
    }
    

4. 相关注解

  • 注解说明
    在这里插入图片描述

  • 代码示例

    public class JunitDemo2 {
    	@Before
    	public void before() {
    		// 在执行测试代码之前执行,一般用于初始化操作
    		System.out.println("before");
    	}
    	@Test
    	public void test() {
    		// 要执行的测试代码
    		System.out.println("test");
    	}
    	
    	@After
    	public void after() {
    		// 在执行测试代码之后执行,一般用于释放资源
    		System.out.println("after");
    	}
    }
    

5. 疑惑: 有了main函数 为啥还要 单元测试


虽然有了 main 函数能够运行程序和调试代码,但是单元测试比 main 函数更加专用于验证代码的正确性,并且在软件开发项目中非常重要。以下是几个理由:

更早地发现错误:单元测试通常是在开发期间编写的,在程序还没有完成时就可以进行,这样可以更早地发现错误。如果仅使用 main 函数调试完整程序,则需要等整个功能模块或应用程序开发完成后才能发现错误或缺陷,这会增加诊断和修复问题的成本。

提高代码质量:编写单元测试强制代码具有良好的设计,易于测试和维护。通过测试每个函数或方法和模块,可以极大地提高代码质量和可读性。

持续集成:单元测试也是实现持续集成的关键部分。单元测试可以在构建时自动运行,以确定新代码是否引入了错误并导致其他测试失败。

重构:重构代码时,最好首先运行自动化单元测试套件,以确保重构代码不会破坏原有代码的功能。

单元测试是一种有效的方法,可以确保您的代码质量并及早发现潜在的问题。即使有了 main 函数,单元测试也是非常必要且不可或缺的,以便提供可靠的保障。


6. 后记


java 中的单元测试是一种软件测试方法,用于对代码中的最小测试单元(即功能模块、类或方法)进行测试和验证。单元测试通常是由程序员自己编写的,并且是在开发过程中进行的。

Java 中有许多单元测试框架可供选择,其中最常用的是 JUnit。JUnit 是一个 Java 编程语言的单元测试框架,用于编写和运行针对 Java 代码的自动化测试。在 JUnit 中,我们可以使用注释将代码标记为测试代码,并且可以使用各种辅助工具和指令来执行测试并检查结果。

在这里插入图片描述

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

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

相关文章

在k8s平台部署个人博客(三)

先下载实战-在k8s平台部署个人博客-资源包 再K8s部署个人博客 实验步骤如下: [rootk8s-master]# kubectl create secret generic mysql-pass --from-literalpasswordYOUR_PASSWORD #把mysql.tar.gz和wordpress.tar.gz上传到K8s工作节点,手动解压即可…

java企业级信息系统开发学习笔记09 利用MyBatis实现CRUD操作

文章目录 一、学习目标利用MyBatis查询表记录利用MyBatis插入表记录利用MyBatis更新表记录利用MyBatis删除表记录 二、查询表记录1.打开mybatis项目(一)在映射器配置文件里引入结果映射元素(二)添加按姓名查询用户记录功能1、添加…

软考——下午题部分,例题一,二,三,六

例题一 11年上半年 病人,护理人员,医生 D 生命体征范围文件 日志文件 病历文件 治疗意见文件 14年上 E1 巴士司机,2 机械师,3 会计,4 主管,5 库存管理系统 D 巴士列表文件 维修记录文件 部件清单 人事档案 14年下 1 客户 2 供应商 D 销售订单表 库存…

基于simulink仿真弹跳球

一、前言 示例可视化了一个从地板上弹起的球。球在撞击地板时变形,保持球的体积恒定。变形是通过修改球的刻度场来实现的。 弹跳球实验有以下几个意义: 1. 研究物体的弹性:弹跳球实验可以帮助我们了解不同物体的弹性特性,包括弹性…

高校全奖PhD招生、大厂全职/实习招聘合集来了!快来拿offer!

本周,招聘小助手从「AI 求职」公众号中整理了来自 6 所高校和 6 家用人单位的「人工智能」相关全奖博士招生、算法实习等招聘信息。 分别来自新加坡国立大学、香港科技大学(广州)、华盛顿大学、字节跳动、小红书、京东、IDEA研究院等国内外知…

如何通过控制点或地物点生产地方坐标系的倾斜摄影三维模型数据?

如何通过控制点或地物点生产地方坐标系的倾斜摄影三维模型数据? 要生成地方坐标系的倾斜摄影三维模型数据,需要进行以下步骤: 1、收集影像数据 首先需要采集大量的航空影像和地面影像,以构建真实世界中的物体模型。这些影像可以…

Electron+Vue+Vite: 开发实践—初始化项目

运行系统:Apple M1 ,16 GB 开发工具:VSCode NodeJS:18.10 参考:https://github.com/electron-vite/electron-vite-vue.git 文章目录 创建项目构建项目客户端构建网页构建创建项目 npm create electron-vitecd electron-vite-tempsudo yarn installsudo yarn d

DDD与传统的OOA/D有什么区别?

DDD(Domain-Driven Design)与传统的OOA/D(Object-Oriented Analysis and Design)有以下几个不同点: 领域驱动设计注重建立一个通用语言,使得业务专家和技术人员之间能够沟通协作,在业务问题的解…

TrueNAS配置虚拟机网卡

TrueNAS支持运行虚拟机,但会出现虚拟机可以访问外网,却不能和主机的TrueNAS通讯。 这时,需要重新配置TrueNAS的网卡设置。 1. 原来的主机网卡配置 我的这台TrueNAS主机有两个以太网卡,目前使用的是enp4s0,IP地址192.1…

CPM-Bee本地部署的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

从零开始学习JavaScript:轻松掌握编程语言的核心技能④

从零开始学习JavaScript:轻松掌握编程语言的核心技能④ 1. JavaScript 表单1.1 JavaScript 表单验证 2. JavaScript 保留关键字3. JavaScript this 关键字4. JavaScript let 和 const4.1 let4.2 const 5.JavaScript JSON6.JavaScript 异步编程7.JavaScript 代码规范…

4.协同工作与发布

目录 1 开发流程 2 人员分配情况 3 不同角色的权限 4 添加项目成员和体验成员 4.1 项目成员 4.1.1 添加 4.1.2 删除与修改权限 4.2 体验成员 4.2.1 添加 4.2.2 删除 5 发布上线 5.1 上传代码 5.2 提交审核 5.3 发布 6 推广 7 查看后台数据 1 …

留学生乱用ChatGPT真的太致命!被认定学术不诚信直接被退学?

01.ChatGPT留学生神器?作业论文全靠它? 近期留学圈内最火热的话题,肯定是关于ChatGPT。 “这个python作业我写不来,让ChatGPT帮我直接生成code就好了。” “论文英文的写不来,ChatGPT直接生成一篇essay,…

Linux - 进阶 使用 LAMP 搭建私有云存储 ( Nextcloud 搭建)

我们用到的私有云存储 >>> nextcloud (非常出名的一款 私有云搭建的应用响应程序 ) 预备工作 : # 关闭 selinux 及 防火墙 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld # 搭建 LAMP 环境 L &…

上市公司污染排放数据(2007-2022)

随着绿色金融的发展、环境信息披露政策制度的相继出台以及公众环保意识的增强,上市公司环境信息披露引起了学者、机构以及社会公众的广泛关注。本数据收集整理上市公司污染排放数据。 1、数据来源:自主整理 2、时间跨度:2007-2022年 3、区域…

构筑算力时代的全光底座,华为带来了面向F5.5G演进的战略蓝图

1991年,科学家Mark Weiser发表了一片文章《The Computer for the 21st Century》,其中有一句名言: The most profound technologies are those that disappear.They weave themselves into the fabric of everyday life until they areindist…

Executor框架的结构

Executor框架的结构 Executor框架主要由3大部分组成如下。任务。包括被执行任务需要实现的接口:Runnable接口或Callable接口。任务的执行。包括任务执行机制的核心接口Executor,以及继承自Executor的ExecutorService接口。Executor框架有两个关键类实现…

Office Visio 2013安装

哈喽,大家好。今天一起学习的是Visio 2013的安装,这是一个绘制流程图的软件,用有效的绘图表达信息,比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件,便于IT和商务人员就复杂…

【软考系统规划与管理师笔记】第5篇 IT服务规划设计

目录 1概述 2 IT服务规划设计活动 2.1 规划设计的活动 2.2关键成功因素 3服务目录管理 3.1 设计服务目录的目的 3.2服务目录设计活动 3.3服务目录设计关键成功因素 4服务级别协议 5服务需求识别 5.1服务需求识别的目的 5.2服务需求识别的活动 5.3 评估服务的指标…

[MySQL从入门到精通]SQL语句

前言 本期主要的学习目标是SQl语句中的DDL和DML实现对数据库的操作和增删改功能,学习完本章节之后需要对SQL语句手到擒来。 1.SQL语句基本介绍 SQL(Structured Query Language)是一种用于管理关系型数据库的编程语言。它允许用户在数据库中存…