Eclipse学习4-在Eclipse中使用JUnit进行单元测试(下)

JUnit 4.12完整测试包获取、集成与单元测试实战指南 单元测试是保障软件质量、提升代码可维护性的核心工程实践。在Java生态中,JUnit作为事实标准的测试框架,其工作原理是通过注解(如@Test)和断言机制,自动化验证代码逻辑的正确性。JUnit 4.12作为经典稳定版本,其技术价值在于为历史项目维护、经典教材学习及特定企业环境提供了可靠的测试基础。在实际应用场景中,配置完整的测试环境是第一步,这通常涉及核心测试包(junit-4.12.jar)及其关键依赖Hamcrest库的正确集成。本文聚焦于解决初学者常遇到的“cannot resolve symbol 阅读详情
使用JUnit测试一个应用程序

现在已经准备好测试JN_test应用程序。为了测试,还需要使用JUnit Wizard创建一个新的class来扩展JUnit测试用例。要使用此wizard,请在Package Explorer 中的JN_test上单击右键,并且选择New->Other来打开一个New对话框,如图所示:

现在展开Java结点并选择JUnit,然后再选择JUnit Test Case,单击Next按钮,如图:

通常情况下JUnit类命名要和被它测试的类同名,并在其后面添加Test。所以命名为JN_testTest。另外选择setUp和tearDown方法,这些方法建立和清理在测试用例中的数据和(或者)对象(它们在JUnit中的术语为fixtures)。按照上图填好后,点击Next。如图:

在此对话框中,选择你想要测试的方法,这样JUnit Wizard能够为它们创建存根(stub)。因为我们想要测试allocate,see和get,选择它们,并点击Finish按钮来创建JN_testTest class。如下所示:在JN_testTest class中为allocate,set和get方法都创建了一个方法存根:testAllocate, testSet, 和 testGet。

package net.csdn.blog;

import junit.framework.TestCase;

 

 

 

 

 

 

 

 

 

 

public class JN_testTest extends TestCase {

    /*

     * @see TestCase#setUp()

     */

    protected void setUp() throws Exception {

        super.setUp();

    }

    /*

     * @see TestCase#tearDown()

     */

    protected void tearDown() throws Exception {

        super.tearDown();

    }

    public void testAllocate() {

    }

    public void testGet() {

    }

    public void testSet() {

    }

}

下一步就是在这些存根中添加代码,以让它们来调用JN_test类中的allocate,set和get方法,这样就能对结果使用JUnit断言方法。我们将需要一个JN_test类的一个对象来调用这些方法,将其命名为testObject。要创建testObject使用JUnit代码中的setUp方法。此方法在JUnit测试开始之前就被调用,这样我们将从将要测试的JN_test类中创建testObject。

JN_test testObject;

   .

   .

   .

    protected void setUp() throws Exception {

        super.setUp();

        testObject = new JN_test();

}

现在就可以用这个对象来进行测试了。比如,allocate方法是用来创建一个整型数组并返回此数组的,所以在testAllocate中使用assertNotNull测试并确信此数组不为空:

public void testAllocate() {

        assertNotNull(testObject.allocate());

}

The get method is supposed to retrieve a value from the array, so we can test that method using assertEquals with a test value in testGet:

get方法从数组中取得数值,在testGet中用assertEquals来测试此方法。

public void testGet() {

        assertEquals(testObject.get(1),1);

    }

And the set method is supposed to return true if it's been successful, so we can test it with assertTrue like this

set方法在成功的时候返回true,使用assertTrue来测试它。

public void testSet() {

        assertTrue(testObject.set(2,4));

    }

在添加代码后,选择Package Explorer 中的JN_testTest,并选择Run As->JUnit Test 菜单项,如图所示:

上面的图示说明这里有错误,在JUnit视图中,三个测试都被打上了叉,表示测试失败,我们先检查第一个测试,testAllocate,它测试的是被创建的数组不能为null:

public void testAllocate( ) {

 

        assertNotNull(testObject.allocate( ));

 

}

看看第一个trace:哦,这个地方遗漏了创建数组,我们修正代码:

public int[] allocate()

    {

        array = new int[3];

        array[0] = 0;

        array[1] = 1;

        array[2] = 2;

        return array;

}

现在再运行JN_testTest,现在只有testGet和testSet两处错误,如图:

testGet和testSet出了什么问题?这里的问题是所有的JUnit测试都是单独运行的。也就是说尽管第一个测试testAllocate调用了allocate方法,但是它并没有被接下来的两个测试testGet和testSet调用。所以为了给这两个测试初始化其数组,必须在testGet和testSet中都调用allocate方法。添加以下代码:

 

 

 

 

 

 

 

 

 

 

public void testGet() {

        testObject.allocate();

        assertEquals(testObject.get(1),1);

    }

 

 

 

 

 

 

 

 

 

 

    public void testSet() {

        testObject.allocate();

        assertTrue(testObject.set(2,4));

    }

现在运行测试,全部都通过。JUnit视图中顶部的菜单栏为绿色,如图所示:

如上所示,JUnit提供了相当简单的方式来创建一组标准的测试,我们只需要动几下鼠标就可以实现。只要测试被创建,你只需要运行你创建的JUnit类。

然而,需要注意的是JUnit只是用一组测试来检验兼容性,如果你的代码中存在问题,或者你不知道怎么办,这时你需要进行debug。(全文完)

在Eclipse中使用JUnit4进行单元测试 我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函数的其他功能,而这个功能有bug的话,那绝对是一件非常郁闷的事情。所以说,每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测 阅读详情

相关推荐

基于 Mask R-CNN 的实例分割:从零开始构建一个强大的分割模型

在本文中,我们将介绍如何使用 Mask R-CNN(Region-based Convolutional Networks with Masks)实现实例分割。实例分割是计算机视觉中的一种任务,旨在识别并分割图像中的各个对象。我们将讨论如何准备数据集、配置 Mask R-CNN 模型并在自定义数据集上进行训练。

斌擎科技 1243

判断闰年

#include<stdio.h> //用户输入年份,判断该年份是否为闰年。 int main() { int year; printf("输入年份 : \n"); scanf("%d", &year); //(四年一闰,百年不闰) || 四百年在闰年 if ( (year%4==0 && year%100!=0) || year%400=...

猪坚强-历经磨难亦不忘初心 318

VMware Horizon 8 2111 部署系列(九)创建即时克隆桌面池

即时克隆桌面池是在 vCenter Server 中使用 vmFork 技术(称为即时克隆 API)从最佳配置映像创建的自动桌面池。即时克隆共享同一个基础映像虚拟机,使用基础映像虚拟机的快照创建的,它使用的存储空间也少于完整虚拟机。 即时克隆始终保持开机状态,并在注销后从当前发布的映像重新创建。...

白昼的技术专栏 4043

Java复习:闰年判断详解

// 什么是闰年?有两种情况:能被4整除但是不能被100整除;能被400整除 // 解决闰年判断问题,涉及三种运算:算术运算、关系运算、逻辑运算 // 第一种闰年情况:year % 4 == 0 && year % 100 != 0 // 第二种闰年情况:year % 400 == 0...

Argonaut_的博客 877

4.6 知识库使用指南:如何让AI Agent拥有专业知识

本文介绍了如何为AI Agent构建和使用知识库。知识库的作用是为Agent提供专业知识,包含文档、数据和规则,可用于专业问答和知识检索。使用方法包括创建知识库(上传文档)、向量化处理、知识检索以及在Agent中的应用。核心要点是理解知识库的价值和使用流程。文章还提出了构建方法、检索优化和应用实践等思考题,建议准备高质量数据、优化检索效果并持续更新知识库。下节将介绍用LangGraph构建复杂AI应用。

yonggeit的博客 3011

Windows下超详细安装Anaconda3以及jupyter notebook

1.下载Anaconda安装包 Anaconda官网网站:https://www.anaconda.com/products/individual下载安装包速度比较慢,国内小伙伴不建议尝试。 我们可以使用清华大学开源软件镜像站:清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,请选择适合自己系统自行下载。 下载完成后如下图: 1.安装Anaconda安装包 1.打开安装包,点击Next 2.点击I Agre

m0_37957160的博客 3802

1、输入年份,判断是否是闰年?

1、输入年份,判断是否是闰年?

qq_43958552的博客 660

纯方位观测下的三维定位,IV-PLKF(Inverse Velocity-Weighted Pseudo-Linear Kalman Filter)

在现代定位系统中,纯方位观测因其无需测距设备的优势,在无线通信、无人机导航和室内定位等领域备受关注。本文深入探讨基于算法的三维定位方法,并提供完整的MATLAB仿真例程。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 672

初学java简单程序(eclipse),在键盘上输入2021年的某一天(几月几号),输出这是2021年的第几天,以及星期几,并判断出该年份是否为闰年。

import java.util.Scanner; public class case6 { public static void main(String[] args) { System.out.print("请输入2021年的某个日期"+'\n'+"请先输入月份:"); Scanner scan = new Scanner(System.in); int m = scan.nextInt(); System.out.print("请...

优快云_Chenrui的博客 1707

自私兽群优化器(SHO)详解:从生物本能到智能优化

自私兽群优化器(SHO)是一种受动物群体自私行为启发的智能优化算法。该算法模拟动物在捕食威胁下的两种行为:聚集行为(全局搜索)和自私行为(局部搜索),将优化问题的解空间映射为生存环境,候选解视为猎物个体。SHO通过安全性评估将猎物分为安全、危险和高危三类,分别采用不同的位置更新策略,并引入捕食者角色增加选择压力。相比传统优化算法,SHO具有无需梯度信息、自适应平衡探索与开发、参数简单等优势,特别适合高维复杂和多模态优化问题。算法通过马尔可夫链理论保证收敛性,已在工程设计和数据挖掘等领域展现出良好性能。

qq_42212808的博客 197

企业AI选型大揭秘:扣子(Coze) Bot与微信对话开放平台深度剖析

本文对比分析了字节跳动的扣子(Coze)Bot和腾讯的微信对话开放平台两款AI聊天机器人解决方案。扣子(Coze)Bot凭借强大的大模型支持、丰富的插件生态、低代码开发及多平台部署能力,在功能丰富度和灵活性方面表现突出,适合技术实力强、业务场景复杂的企业。微信对话开放平台则依托微信生态优势,在客户服务和营销推广场景中更具优势,其零门槛接入方式更适合技术能力较弱的企业。企业在选型时应综合考虑规模、预算、业务场景和技术能力等因素,选择最适合的AI解决方案,以充分发挥AI技术价值,提升企业竞争力。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 434

maven Junit 测试判断是否是闰年

(100分) 编写一个DateUtil的类,里面有一个isLeapYear(int year) 的方法,判断输入年份是否是闰年。如果是闰年,返回true,其他返回false。闰年需要满足以下3个条件: 年份必须大于0,且小于等于10000。 年份不能整除100,且可以整除4。 年份可以整除100,且可以整除400。 请编写JUnit测试类DateUtilTest,采用以下用例,使用assertE...

qq_43663493的博客 2951

点云处理实操(四) -PCL中的点云三角化

点云处理实操(四) -PCL中的点云三角化

cangqiongxiaoye的博客 939

在Eclipse中使用JUnit4进行单元测试(学习)

在优快云上看到三篇Junit文章,写的非常好,作为Junit教学文章正好!特此记录,以后备查....   在Eclipse中使用JUnit4进行单元测试(初级篇) 在Eclipse中使用JUnit4进行单元测试(中级篇) 在Eclipse中使用JUnit4进行单元测试(高级篇)  ...

avanry的专栏 212

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Eclipse学习4-在Eclipse中使用JUnit进行单元测试(上)

使用JUnit进行测试JUnit是与Eclipse一起提供的一个开源测试框架。在同一个Project中,可以创建与其它class无异的“基于JUnit”的class,并使用此JUnit代码去测试project中的其它class。JUnit的此种使用方式能够为每位在此应用程序上工作的人员构建一组标准的测试。如果当更改了应用程序代码以后,他们所需做的工作仅仅是点击几下按钮来验证此应用程序是否依然能够通

nirvana_li 2622

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JUnit4学习笔记2-Eclipse中使用JUint4进行单元测试

1.1 创建JUnit测试 你可以手动引入JUnit4相关jar包,或者使用eclipse向导自动引入 在工程上,右键--属性--Java Build Path--Add Library... 选择JUnit 选择版本--Finish 添加完后可以看到工程中多了个JUnit4的包 测试类生成: 你可...

weixin_30918633的博客 312

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

eclipse中测试java,Eclipse学习4-在Eclipse中使用JUnit进行单元测试(上)-JSP教程,Java技巧及代码...

使用junit进行测试junit是与eclipse一起提供的一个开源测试框架。在同一个project中,可以创建与其它class无异的“基于junit”的class,并使用此junit代码去测试project中的其它class。junit的此种使用方式能够为每位在此应用程序上工作的人员构建一组标准的测试。如果当更改了应用程序代码以后,他们所需做的工作仅仅是点击几下按钮来验证此应用程序是否依然能够通...

weixin_39989980的博客 268

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

我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函数的其他功能,而这个功能有bug的话,那绝对是一件非常郁闷的事情。所以说,每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测...

点点知识小屋 149

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

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

binyao02123202的专栏 983

Eclipse之使用JUnit4进行单元测试

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

明昕ztoy的博客 1229

Eclipse中使用JUnit4进行单元测试具体操作

简述 Eclipse使用的版本Eclipse Mars(4.5) JUnit是Java语言的单元测试框架 junit3与junit4的区别 在junit3中,如果某个类是测试类,必须将其继承类TestCase,如果某个方法是测试方法,必须让这个方法以testXX开头,如果希望指定某个测试方法运行之前运行某个初始化方法,这个方法的名称必须是setUp,如果希望在某个测试方法运行之后运行某个释放资源的

青云山庄 7458

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

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

豆子熊 1417

eclipse中使用junit4单元测试入门

 JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。 先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和

kevincol22的专栏 554
上一篇: Eclipse学习4-在Eclipse中使用JUnit进行单元测试(上)
下一篇: Eclipse学习5-在Eclipse中编写Code的常用快捷方式
nirvana_li
博客等级 码龄25年 38粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值