Java单元测试工具:JUnit4(一)——概述及简单例子

article/2025/10/29 18:43:29

(一)JUnit概述及一个简单例子

看了慕课网的JUnit视频教程: http://www.imooc.com/learn/356,总结笔记。
        这篇笔记记录JUnit的概述,以及一个快速入门的例子。

1.概述

1.1 什么是JUnit

①JUnit是用于编写可复用测试集的简单框架,是xUnit的一个子集。xUnit是一套基于测试驱动开发的测试框架,有PythonUnit、CppUnit、JUnit等。
②Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
③多数Java的开发环境都已经集成了JUnit作为单元测试的工具,比如Eclipse。

1.2 为什么要使用测试工具

①测试框架可以帮助我们对编写的程序进行有目的地测试,帮助我们最大限度地避免代码中的bug,以保证系统的正确性和稳定性。
②很多人对自己写的代码,测试时就简单写main,然后sysout输出控制台观察结果。这样非常枯燥繁琐,不规范。缺点:测试方法不能一起运行,测试结果要程序猿自己观察才可以判断程序逻辑是否正确。
③JUnit的断言机制,可以直接将我们的预期结果和程序运行的结果进行一个比对,确保对结果的可预知性。

1.3 相关链接

JUnit官网: http://junit.org/
JUnit的jar包下载: https://github.com/junit-team/junit/wiki/Download-and-Install

2.简单例子快速入门

2.1 创建简单业务类

使用Eclipse创建一个项目,导入JUnit相关包,因为eclipse集成了JUnit框架,所以可以直接右键项目,选择Build Path → 点击Add Libraries → 选择JUnit  → 点击Next,选择JUnit版本,然后Finish。(其实也可以下载jar包作为用户库来添加)
编写一个简单的计算类:Calcuate类
package jtzen9.util;
/*** 实现加减乘除的简单计算类* @author Zen9**/
public class Calcuate {public int add(int a,int b){return a+b;}public int subtract(int a,int b){return a-b;}public int multiply(int a,int b){return a*b;}public int divide(int a,int b){return a/b;}
}

2.2 创建测试类

①右键Calcuate类,new 一个 JUnit Test Case:


②弹出的对话框,暂时不做修改,直接点击next:(这样创建的测试类会在同一个包下,暂时不管测试类和业务类的隔离)


③勾选要测试的方法,点击Finish:




2.3 修改生成的测试类代码

上面步骤生成的测试类只包含测试方法的模板,并没有具体的测试细节,修改成如下:(其中有比较多的重复代码,暂时不管;并将减法的测试设为有问题)
package jtzen9.util;
import org.junit.Assert;
import org.junit.Test;
public class CalcuateTest {Calcuate calcuate;@Testpublic void testAdd() {calcuate = new Calcuate();int result = calcuate.add(2, 3);Assert.assertEquals("加法有问题", 5, result);/** "加法有问题":期望值和实际值不一致时,显示的信息* 5 :期望值* result :实际值*/}@Testpublic void testSubtract() {calcuate = new Calcuate();int result = calcuate.subtract(12, 2); Assert.assertEquals("减法有问题", 10000, result); //故意设置减法期望值为10000}@Testpublic void testMultiply() {calcuate = new Calcuate();int result = calcuate.multiply(2, 3);Assert.assertEquals("乘法有问题", 6, result);}@Testpublic void testDivide() {calcuate = new Calcuate();int result = calcuate.divide(6, 3);Assert.assertEquals("除法有问题", 2, result);}
}

2.4 运行结果

        右键测试类,选择Run As , JUnit Test,结果如下:

总共有4个测试方法,运行了4个方法;其中failures有1个,即有一个方法的输出结果跟我们的预期不一样。





http://chatgpt.dhexx.cn/article/8uPX6tS3.shtml

相关文章

Linux下执行Python脚本

1.Linux Python环境 Linux系统一般集成Python,如果没有安装,可以手动安装,联网状态下可直接安装。Fedora下使用yum install,Ubuntu下使用apt-get install,前提都是root权限。安装完毕,可将Python加入环境变…

python pytest脚本执行工具

pytest脚本执行工具 支持获取当前路径下所有.py脚本 添加多个脚本,一起执行 import tkinter as tk from tkinter import filedialog import subprocess import os from datetime import datetimedef select_script():script_path filedialog.askopenfilename(fil…

linux上运行python(简单版)

linux上运行python(简单版) 一、前提准备1.centOS72.挂载yum源[http://t.csdn.cn/Isf0i](http://t.csdn.cn/Isf0i) 二、安装python3三、运行程序 一、前提准备 1.centOS7 2.挂载yum源http://t.csdn.cn/Isf0i 在终端进行安装python3 二、安装python3 …

linux怎么运行python脚本?

linux运行python脚本的方法: 1、命令行执行: 建立一个test.py文档,在其中书写python代码。之后,在命令行执行:python test.py 说明:其中python可以写成python的绝对路径。使用which python进行查询。 注…

java实现远程执行Linux下的shell脚本

java实现远程执行Linux下的shell脚本 背景导入Jar包第一步:远程连接第二步:开启Session第三步:新建测试脚本文件结果报错 背景 最近有个项目,需要在Linux下的服务器内写了一部分Python脚本,业务处理却是在Java内&…

Java运行Python脚本

前段时间遇到了在JavaWeb项目中嵌入运行Python脚本的功能的需求。想到的方案有两种,一种是使用Java技术(Jython或Runtime.exec)运行Python脚本,另一种是搭建一个Python工程对外提供相应http或webservice接口。两种方案我都有实现&…

Java项目分层

MVC模式 在实际的开发中有一种项目的程序组织架构方案叫做MVC模式,按照程序 的功能将他们分成三个层,如下图:Modle层(模型层)、View层(显示层)、Controller层(控制层)。…

java项目收获总结_java开发项目收获心得

1 java开发项目收获心得 it行业现在的发展如日中天,很多人都纷纷走进这个行业,而java作为跨平台的编程语言更是受欢迎。java其实相对其他语言来说的确很有优势,但是也有点缺陷,但是以后发展到什么程度,谁都不知道。那么下面小编给大家说说java开发项目收获心得,希望能对你…

java查看jar包依赖_java项目开发中如何查找到项目依赖的jar包?

不管是java普通工程,还是java web项目,甚至是android项目,依赖包的管理有2种: 1.直接依赖jar包 这种方式简单直白,项目下载后在正确的ide或者稍微做转换就可以运行起来。比如java web工程的WEB-INF/lib下 只要按这个步骤Java Build Path=>Add Libraty=>Web App Libr…

Java小白必看:开发一个编程项目的完整流程(附100套Java编程项目源码+视频)

我相信很多Java新手都会遇到这样一个问题:跟着教材敲代码,很容易;但是让他完整的实现一个应用项目,却不会;不知道从哪里开始,不知道实现一个项目的完整流程是怎样的,看似很简单的一个问题&#…

分享67套基于Java开发的Java毕业设计实战项目(含源码+毕业论文)【新星计划】

【新星计划】分享67套基于Java开发的Java毕业设计实战项目(含源码毕业论文) 基于Java开发的Java毕业设计实战项目 本文中的所有主题都来自互联网。如果您侵犯您的权利,请及时联系Blogger,博主将及时处理。 投诉邮箱:1919101926qq.com (没事…

分享一些我的学习方法

赖勇浩(http://laiyonghao.com ) 经常听到和看到一些前辈提起搞编程这一行最大的痛苦在于知识的更新太频繁,如同逆水行舟,不进则退,稍一松懈,就跟不上潮流。的确如此,既然身在 IT 界&#xff0c…

规划之路:SLAM学习经验分享

针对想学SLAM的提问,我觉得我还是有一定的发言权。 作为一个刚入坑SLAM一年多的初学者,首先想说的就是这个研究方向比较广,大方向按搭载传感器分为激光SLAM和视觉SLAM两种,激光SLAM搭载激光雷达,视觉SLAM搭载单目、双目…

学习经验分享之十三:如何撰写论文

一、文献积累 顶刊or顶会: AAAI: American Association for AI National Conference CVPR: IEEE Conf on Comp Vision and Pattern Recognition IJCAI: Intl Joint Conf on AI ICCV: Intl Conf on Computer Vision ICML: Intl Conf on Machine Learning KDD: Knowl…

学习经验分享【25】记录个人的一些学习体会(更新TensorBoard)

本博文将记录和分享个人的一些学习工作体会和踩过的坑,希望对大家能有帮助。 一、对比实验 用yolov5l.ymal和yolov5n.ymal文件,然后加载yolov5s.pt后,训练得到的模型效果极差(mAP差30%),重新训练后换为yol…

个人学习方法分享

hi,大家好,今天来分享一下,我的一些学习经验,希望对大家学习有帮助。 我的学习方法 学习计划 核心思想:把自己像产品一样打造,就像张一鸣经典语录:run company as a product 制定目标 首先学习需…

分享自己学英语的经验

其实学好英语对于一个人真的很有用,尤其是对工程师来说,各种文献资料,代码,最新的技术文章,太多是英文的了,一个典型的例子就是,作为一个程序员和外国客户做过培训,当其他同事英语没…

【学习经验分享NO.21】学习资料分享(持续更新)

本博客将收集整理人工智能深度学习相关资料,进行整理,供大家学习使用。如果有需要帮忙整理的请留言。将不断更新,请持续关注。 一、深度学习论文资料 链接:https://pan.baidu.com/s/18LO5df0dp9-IE8Z3aFyrPg 提取码:c…

学习经验分享之十:Pycharm

前 言:作Pycharm有社区版和正式版,初学深度学习算法的小伙伴可能会选择社区版,因为正式版只有30天试用期,但是在实际使用过程中,社区版会出现很多功能上的不足,比如无法网上连接服务器,以及其他…

个人学习经验

这是一个ubuntu上学习cv遇到的一些常见问题的帮助和解决方法。 有些东西我会慢慢往上面加 文章目录 创建新环境conda添加镜像源安装模块在jupyter中使用新环境在pycharm中使用新环境 使用scp命令传输文件使用mobaxterm连接服务器 转数据集标注格式anaconda上安装好用的插件使用…