使用JUnit4进行单元测试

JUnit5单元测试框架的使用教程与简单实例 JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。JUnit5旨在调整java8样式的编码,并且比JUnit4更强大和灵活。JUnit Jupiter附带了许多JUnit 4拥有的断言方法,并添加了一些可以很好地用于Java 8 lambdas的断言方法。 阅读详情

我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函数的其他功能,而这个功能有bug的话,那绝对是一件非常郁闷的事情。所以说,每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。传统的编程方式,进行单元测试是一件很麻烦的事情,你要重新写另外一个程序,在该程序中调用你需要测试的方法,并且仔细观察运行结果,看看是否有错。正因为如此麻烦,所以程序员们编写单元测试的热情不是很高。于是有一个牛人推出了单元测试包,大大简化了进行单元测试所要做的工作,这就是JUnit4。本文简要介绍一下在Eclipse3.2中使用JUnit4进行单元测试的方法。

首先,我们来一个傻瓜式速成教程,不要问为什么,Follow Me,先来体验一下单元测试的快感!

首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类并不是很完美,我们故意保留了一些Bug用于演示,这些Bug在注释中都有说明。该类代码如下:


package andycpp;

public class Calculator ...{
    
private static int result; // 静态变量,用于存储运行结果
    public void add(int n) ...{
        result 
= result + n;
    }

    
public void substract(int n) ...{
        result 
= result - 1;  //Bug: 正确的应该是 result =result-n
    }

    
public void multiply(int n) ...{
    }
         // 此方法尚未写好
    public void divide(int n) ...{
        result 
= result / n;
    }

    
public void square(int n) ...{
        result 
= n * n;
    }

    
public void squareRoot(int n) ...{
        
for (; ;) ;           //Bug : 死循环
    }

    
public void clear() ...{     // 将结果清零
        result = 0;
    }

    
public int getResult() ...{
        
return result;
    }

}

第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图:



在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示:


然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。

    第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”。如下图所示:


在弹出的对话框中,进行相应的选择,如下图所示:


    点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。如下图所示:


之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:


package andycpp;

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;

public class CalculatorTest ...{

    
private static Calculator calculator = new Calculator();
    
    @Before
    
public void setUp() throws Exception ...{
        calculator.clear();
    }


    @Test
    
public void testAdd() ...{
        calculator.add(
2);
        calculator.add(
3);
        assertEquals(
5, calculator.getResult());
    }


    @Test
    
public void testSubstract() ...{
        calculator.add(
10);
        calculator.substract(
2);
        assertEquals(
8, calculator.getResult());
    }


    @Ignore(
"Multiply() Not yet implemented")
    @Test
    
public void testMultiply() ...{
    }


    @Test
    
public void testDivide() ...{
        calculator.add(
8);
        calculator.divide(
2);
        assertEquals(
4, calculator.getResult());
    }

}

第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试,如下图所示:

运行结果如下:


进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了4个测试,其中1个测试被忽略,一个测试失败”

             至此,我们已经完整体验了在Eclipse中使用JUnit的方法。在接下来的文章中,我会详细解释测试代码中的每一个细节!
IDEA中使用JUnit4单元测试 本文介绍JUnit单元测试的重要性,然后详细介绍了使用IDEA工具搭建单元测试的步骤。 阅读详情

相关推荐

Junit4 单元测试

最近公司一直在鼓励写单元测试,故最近自己也整理了些比较常用的单元测试用法,在这里跟大家分享!以下便是我们经常写的一个测试类,那么其中的一些内容我们是否完全都理解呢,下面我来给大家介绍下:package com.lyancafe.csr.bo; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.tim

何静媛 3806

在Eclipse中使用JUnit4进行单元测试(初级篇)

本文绝大部分内容引自这篇文章:http://www.devx.com/Java/Article/31983/0/page/1我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函数

华丽的痘痘 48万+

麒麟V10服务器多硬盘安装与分区实战:告别自动分区,手动分配/boot、swap和/根目录

本文详细介绍了麒麟V10服务器在多硬盘环境下的手动分区策略,包括/boot、swap和/根目录的优化分配方案。通过SSD与HDD混合存储架构的合理规划,提升系统性能和运维效率,适用于企业级定制化系统部署需求。

weixin_26976635的博客 407

【单元测试】Junit 4(二)--eclipse配置Junit+Junit基础注解

​ 前面我们介绍了白盒测试方法,后面我们来介绍一下Junit 4,使用的是eclipse(用IDEA的小伙伴可以撤了)

chengxuyuznguoke的博客 2338

【硬件工程师职业细分】揭秘硬件基带工程师

你知道硬件工程师的细分领域硬件基带工程师吗? 它们和常见的硬件工程师又有哪些不同? 福利待遇怎么样?有哪些职业要求? 快来涨上一波知识吧~

woshizzai的博客 1万+

MATLAB 论文复现——基于虚拟储能的电动汽车充放电调度策略及激励评价

文章基于虚拟储能聚合体仿真模型优化电动汽车充放电调度,并采用复合权重评价电动汽车的充电激励。根据电动汽车灵活性和系统稳定性衡量其贡献大小,并通过模糊推理系统模拟用户的充电意愿,实现对电动汽车充电的引导和优化。[1]陈朔,胡昊,方慧敏,等.基于虚拟储能的电动汽车充放电调度策略及激励评价[J/OL].系统仿真学报,1-12[2024-07-24].https://doi.org/10.16182/j.issn1004731x.joss.23-1316.基于虚拟储能的电动汽车充放电调度策略及激励评价。

sjr1478的博客 363

Junit测试的使用场景,这里带来2个非常实用的案例

单元测试比较实用的2个案例,2个案例都用到了断言机制,而且都使用了@Befor和@After2个注解。最后介绍了力扣上通关测试用例的应用。

helpluozhao123的博客 1674

GPS-SDR-SIM使用详解

GPS-SDR-SIM 是一款开源工具,能够生成 GPS 基带信号数据流,这些数据流可通过软件定义无线电(SDR)平台(如 ADALM-Pluto、bladeRF、HackRF、USRP 等)转换为射频(RF)信号。简单来说,它能模拟 GPS 卫星信号,帮助开发者或爱好者测试 GPS 接收设备的性能,而无需依赖真实的卫星信号。

qq_35621280的博客 1241

[转]在Eclipse中使用JUnit4进行单元测试(中级篇)

我们继续对初级篇中的例子进行分析。初级篇中我们使用Eclipse自动生成了一个测试框架,在这篇文章中,我们来仔细分析一下这个测试框架中的每一个细节,知其然更要知其所以然,才能更加熟练地应用JUnit4。 一、     包含必要地Package 在测试类中用到了JUnit4框架,自然要把相应地Package包含进来。最主要地一个Package就是org.junit.*。把它包含进来之后,绝大部分...

weixin_33901926的博客 168

大华 DSS 数字监控系统 itcBulletin SQL 注入漏洞复现

大华 DSs 数字监控系统是大华开发的一款安防视频监控系统,拥有实时监视、云台操作、录像回放、报警处理、设备管理等功能。大华 DSS存在SQL注入漏洞,攻击者 pota/services/itcBuletin 路由发送特殊构造的数据包,利用报错注入获取数据库敏感信息。攻击者除了可以利用 SQL注入漏词获取数据库中的信息例如,管理员后台密码、站点的用户人人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限poc验证是否存在漏洞如果你想查询用户名和密码。

holyxp的博客 4003

Linux系统安全学习手册

Linux反弹shell Linux系统应急响应 Linux服务器安全加固 Linux下的用户、组和权限 Linux中的gcc Linux中su和sudo的用法和区别 Linux系统python2与python3共存 Linux中grep工具的使用 Linux中环境变量的设置 Linux中常见的150个命令(干货) Linux中编写Shell脚本 LNMP环境搭建Wordpress博客 LAMP环境搭建一个Discuz论坛 Linux运维比较常用的一些脚本 Linux系统中安装软

谢公子的博客 7532

Junit4单元测试

Junit4单元测试一、简介Junit4单元测试1.1 Junit1.2 单元测试1.3 Junit4单元测试好处1.4 测试覆盖及代码覆盖率二、使用Junit4单元测试(IDEA)2.1 配置2.2 新建test目录2.3 IDEA自动生成测试类三、测试类的编写(SSM)3.1 Dao类(Mapper类)3.2 Service类3.3 Controller类 一、简介Junit4单元测试 1.1...

ShootingStar_1998的博客 2849

YOLOv11改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进v11颈部网络

本文记录的是利用颈部结构优化YOLOv11的目标检测网络模型。利用改进后的颈部网络,通过跳层连接,避免了在进行反向传播时的梯度消失问题,并且引入跨尺度连接,可以实现不同级别和层次的特征充分融合,获取足够的高层语义信息和低层空间信息交换,从而在大规模变化场景下提高检测性能。GIRAFFEDET: A HEAVY-NECK PARADIGM FOR OBJECT DETECTION-GFPN包含了上述的跳层连接(dense-link和log2nlog _{2} nlog2​n-link)以及跨尺度连接(Quee

Limiiiing的博客 3007

Android单元测试学习之 Junit4

assertArrayEquals([String message],expectedArray,resultArray) | 断言预期数组和结果数组相等,数组类型可能是int,short,long,byte,char,Object || assertSame([String message],java.lang.Object expected,java.lang.Object actual) | 断言两个对象引用相同的对象 || @Runwith | 放在测试类名之前,用来确定这个类怎么运行的。

2401_84240189的博客 1793

安川机器人外部轴添加

本文详细介绍了如何在安川机器人本体上添加第7轴以及如何设置动作,本文以添加点焊枪为例进行讲解。

haier123888的博客 7892

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

在IntelliJ IDEA中使用Junit4进行单元测试

最近在看java核心技术卷,看到“调试技巧”这一节的时候提到了JUnit这个单元测试框架激起了我的兴趣,所以花了点时间查找到了一些资料,也是略知一二了。特意在这记录一下:) 什么是单元测试? 单元测试(英語:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。在java里面的最想单元当然技术方法了,所以单元测试就是对方法的测试。(当然单元测试也可以说是对类的测试,关键看你如何“定义”单元) 使用步骤: 第一步: 安装Junit插件,按..

NEXTLJP的博客 1974

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Junit4单元测试的使用

综上所述,基本Junit单元测试的使用就完成了,单元测试为我们项目开发中的一些不确定因素的解决提供了有效的帮助,如果能够利用好,将会提高我们的开发效率。创建好测试类以后我们还需要创建需要进行单元测试的方法,并且使用注解对这些方法进行响应的标注。在了解Junit单元测试常用注解的意义后,我们就可以进行单元测试。要使用单元测试,首先我们得在项目中导入Junit4的jar包。: 表示要进行单元测试的方法,且返回值必须为void。: 表示这个方法一定在单元测试方法之后执行。此时就为我们生成了一个测试类。

dasfsafadf的博客 1447

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

junit4单元测试总结

junit4单元测试总结 本文开发环境为myeclipse10.7 1.  准备工作 1.1. 选择需要单元测试的文件 创建maven工程,右击需要单元测试的文件,选择New->other,选择Junit Test Case; 1.2. 选择Junit 4 代码放到src/test/java 1.3. 选择单元测试函数 添加Junit 4 引用 1.4. 生成te

bejustice的专栏 1831

使用Junit4进行单元测试

  Unit 是 Java 社区中知名度最高的单元测试工具。它诞生于 1997 年,由 Erich Gamma 和 Kent Beck 共同开发完成。其中 Erich Gamma 是经典著作《设计模式:可复用面向对象软件的基础》一书的作者之一,并在 Eclipse 中有很大的贡献;Kent Beck 则是一位极限编程(XP)方面的专家和先驱。   麻雀虽小,五脏俱全。JUnit 设计的...

anfenmo3398的博客 186

用JUnit4进行单元测试

用Junit进行单元测试很方便,尤其是Junit4引入了很多Annotation注解以后。看测试的示例: 待测试类: public class Calculator { public int add(int a, int b) { return a + b; } public int minus(int a, int b) { return a - b; ...

飘零的云 962

Eclipse之使用JUnit4进行单元测试

        在软件开发过程中,需要有相应的测试工作。依据测试目的不同,可以将软件测试分为单元测试、集成测试、确认测试和系统测试等。其中单元测试在软件开发阶段是最底层的测试,它易于及时发现并解决问题。JUnit就是一个进行单元测试的开源框架,下面我们来学习单元测试框架JUnit4的使用。   &n...

明昕ztoy的博客 1229

Java单元测试与JUnit4使用

前言很多小伙伴都一直有一个问题,我们在使用Java编码的过程中需要对已经编写的类和方法进行测试,比较常见的就是在main方法中去调用。但是当我们的项目比较大的时候,这种方法就显得不那么可行了,本节我们就来学习如何在Java中使用单元测试对我们的代码进行单元测试。学习内容。

2401_84046895的博客 909

使用Junit4和JMockit进行单元测试

首先介绍下在Idea中如何安装Juni插件:1. 安装JUnitGenerator V2.0在idea中,打开File-Setting-Plugins,在右侧弹出的搜索框中搜索JUnitGenerator V2.0,安装之后重启idea。2. 设置JUnitGenerator V2.0的属性在idea中,打开File-Setting-Other Settings-JUnitGeneratora) ...

义臻的博客 9071

JUnit4单元测试以及简单实现

随着我们的项目深入,代码量也越来越多。这时如果出现BUG,面对成千上万行代码,一步一步调试效率实在低。所以理应在开发的过程中,每写出一个函数或方法,就当即测试该函数是否正确或者是否达到我们想要的效果。我们应当确保每一个函数都是正确的,需要对函数进行方方面面的测试,这样的测试我们就叫做单元测试。 JUnit是一个Java语言的单元测试框架。用于编写和运行可重复的测试。他是用于单元测试框架体系x...

Hy-Vincent的博客 3338
上一篇: JUnit4的使用和配置
下一篇: WinForm(C#)中跨线程访问控件的解决方法
hongyanjava
博客等级 码龄17年 12粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值