JUnit测试骨架

JUnit测试骨架
使用JUnit时,主要都是通过继承TestCase类别来撰写测试用例,使用testXXX()名称来撰写单元测试。
用JUnit写测试真正所需要的就三件事:
1.  一个import语句引入所有junit.framework.*下的类。
2.  一个extends语句让你的类从TestCase继承。
3.  一个调用super(string)的构造函数。

 

下面针对求最大值函数编写测试用例:
1.简单测试:[7,8,9]->9;
2.位序测试:[9,8,7] ->9;[7,9,8] ->9;[8,7,9] ->9;
3.重复值测试:[9,7,9,8] ->9;
4.单值测试:[1]->1;
5.负值测试:[-7,-8,-9]->-7;
6.空值测试:[]->抛出异常;
测试类NumberToolTest:

 

public class NumberToolTest extends TestCase {
    public NumberToolTest(String name) {
       super(name);
    }

    public void testSimple() {
       assertEquals(9, NumberTool.getMax(new int[] { 7, 8, 9 }));
    }

    public void testOrder() {
       assertEquals(9, NumberTool.getMax(new int[] { 9, 8, 7 }));
       assertEquals(9, NumberTool.getMax(new int[] { 7, 9, 8 }));
       assertEquals(9, NumberTool.getMax(new int[] { 8, 7, 9 }));
    }

    public void testDups() {
       assertEquals(9, NumberTool.getMax(new int[] { 9, 7, 9, 8 }));
    }

    public void testOne() {
       assertEquals(1, NumberTool.getMax(new int[] { 1 }));
    }

    public void testNegitave() {
       assertEquals(-7, NumberTool.getMax(new int[] { -7, -8, -9 }));
    }

    public void testEmpty() {
       try {
           NumberTool.getMax(new int[] {});
           fail("Should have thrown an exception");
       } catch (RuntimeException e) {
           assertTrue(true);
       }
    }
}

 

Case 1:如果你只想执行某TestCase中的部分测试函数,则可自己构建TestSuite

做法:

下面的代码针对NumberToolTest中的两个测试函数testSimple()和testNegitave()进行测试。

import com.zj.c01.NumberToolTest;
import junit.framework.Test;
import junit.framework.TestSuite;

public class PartTest {
    public static Test suite() {
       TestSuite suite = new TestSuite();
       suite.addTest(new NumberToolTest("testSimple"));
       suite.addTest(new NumberToolTest("testNegitave"));
       return suite;
    }
}

 

Case 2:组合多个testCase一起来测试

public class NumberToolTest2 extends TestCase {
    private int[] arr;

    public NumberToolTest2(String name) {
       super(name);
    }

    protected void setUp() throws Exception {
       super.setUp();
       arr = new int[] { -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 };
    }

    protected void tearDown() throws Exception {
       super.tearDown();
       arr = null;
    }

    public void testMax() {
       assertEquals(5, NumberTool.getMax(arr));
    }

    public void testMin() {
       assertEquals(-5, NumberTool.getMin(arr));
    }
}

做法:

下面会将NumberToolTest2和NumberToolTest一起来进行测试

public class CompositeTest {
    public static Test suite() {
       TestSuite suite = new TestSuite("Running all tests.");
       suite.addTestSuite(MathToolTest.class);
       suite.addTestSuite(NumberToolTest.class);
       return suite;
    }
}

 

注意:

每一个定义好的TestCase,都使用TestRunner 来运行测试,事实上TestRunner并不直接运行TestCase上的单元方法,而是通过TestSuite ,TestSuite可以将数个TestCase组合在一起。
在上面的例子中,并没有看到任何的TestSuite,这是因为TestRunner的run()方法中会建立TestSuite:
static public void run(Class testClass) {
    run(new TestSuite(testClass));
}

 

AI辅助单元测试实战:Spring Boot/JUnit/Mockito效率提升指南 单元测试是软件工程中保障代码质量的核心实践,通过验证代码单元在隔离环境下的行为是否符合预期,确保软件模块的可靠性与可维护性。其原理在于利用测试框架(如JUnit)构建自动化测试用例,结合Mock技术(如Mockito)模拟外部依赖,实现对业务逻辑的精准验证。这项技术的价值在于早期发现缺陷、支持重构并提升开发信心,广泛应用于微服务、前端框架及持续集成等场景。随着AI技术的发展,智能代码生成工具开始深度融入测试编写流程,显著提升测试用例的生成效率。本文聚焦于如何利用AI辅助工具,结合Spring Boot、JU 阅读详情

相关推荐

Android单元测试实战:JUnit4、Mockito与Robolectric综合应用指南

单元测试是保障软件质量的核心实践,通过验证代码单元在隔离环境下的行为是否符合预期,确保逻辑正确性。其原理在于构建自动化验证闭环,通过模拟依赖、控制输入与断言输出来实现快速反馈。在Android开发中,由于框架依赖复杂,传统单元测试面临环境模拟难题。JUnit4作为测试骨架,定义了测试结构与生命周期;Mockito通过创建依赖替身实现行为模拟与验证,解决外部依赖隔离问题;Robolectric则通过影子框架在JVM模拟Android运行环境,实现无需真机的快速测试。这套组合技术显著提升测试效率与可靠性,尤其适

clhq71932的博客 454

Junit TestCase

<br /> 1、将junit的jar包放在工程的classpath中<br />2、创建Junit Test Case,其类继承自junit.framework.TestCase,选择要测试的类,点击“下一步”,选择所要测试的类的方法,在写测试方法时要遇到assert的一系列方法判断测试结果正确与否(测试类的测试方法应该以test开头,必须是public void,并且无参的):<br />如:<br />原类:<br />public class SampleCalculator {  <br />pu

G-Ohand 7846

Cadence HDL原理图库避坑指南:从Excel导入引脚到解决‘V- V+’报错(附FPGA实例)

本文详细介绍了Cadence HDL原理图库的高效构建与排错方法,重点讲解如何从Excel智能导入引脚数据并优化FPGA封装设计。通过数据预处理、智能导入和深度排错三个关键阶段,帮助工程师避免常见错误如‘V- V+’报错,提升设计效率和准确性。

weixin_28739079的博客 237

JUnit之TestCase和TestSuite详解

Android Studio下单元测试的本质其实是根据通过书写JAVA测试代码,通过模拟用户调用相应的方法,或者使用者按下相应的按键来验证我们的代码的逻辑是否能达到预期的要求,如果所有的用例都能通过,则证明我们的逻辑满足要求,否则,可以通过fail()函数(或使用Assert)进行输出错误信息。 在进行测试前我们首先需要了解一下几个基本的概念:TestCase,TestSuite:

Pentsun的博客 7817

高速数字信号硬件设计:灵巧手方向核心技能与实战解析

在机器人产业加速演进的今天,灵巧手等高自由度末端执行器对硬件电路设计提出了更高要求。传统硬件工程师熟悉功能、功耗与EMC,而灵巧手设计还需在极小空间内融合多路电机驱动、高速数字接口与微弱模拟信号采集。信号完整性与电源完整性成为决定系统稳定性的关键:信号上升沿决定有效带宽,阻抗匹配、回流路径和去耦策略直接影响通信质量与抗干扰能力。从阻抗计算、等长设计到FPC布线,再到电源预算与纹波抑制,这些高速数字信号设计基础原理不仅适用于服务器主板,更是灵巧手控制器开发与调试的必修课。本文面向从事机器人硬件、嵌入式系统与电

weixin_29172963的博客 239

Git Worktree + Claude Code:多终端并发开发完全实战

深入讲解如何使用 Git Worktree 配合多终端 Claude Code 实现并发开发,通过实战案例展示如何在 Android 开发中提升 2-3 倍效率,彻底告别等待 AI 的问题。

Cheson的专栏 1206

Junit核心——测试类(TestCase)、测试集(TestSuite)、测试运行器(TestRunner)

首先,把这三个定义简单的说明一下: 1、测试类(TestCase):一个包含一个或是多个测试的类,在Junit中就是指的是包含那些带有@Test注解的方法的类,同一样也被称作“测试用例”; 2、测试集(TestSuite):测试集是把多个相关测试归入一个组的表达方式,在Junit中,如果我们没有明确的定义一个测试集,那么Juint会自动的提供一个测试集,一个测试集一般将同一个包的测试类归入一组

夜子的专栏 1万+

Vue3 - 超详细“纯前端“将文件上传到阿里云OSS对象存储,最新阿里云前端直传音频、视频、图片、文件、office文档等任意文件,vue3单个或批量从本地选择文件,秒传到阿里云oss无需后端接口!

vue3,阿里云oss存储,前端直传oss,上传图片/office文档/音视频/zip压缩包到阿里云oss,项目中上传文件到阿里云oss详细教程,如何将本地文件上传到阿里云OSS存储,纯前端实现阿里云OSS上传,纯前端直传至阿里OSS对象存储教程,如何解决上传文件到阿里云OSS本地环境调试出现跨域问题,直传阿里云oss跨域报错解决,前端直接上传文件到oss服务端,不经过后端直传,浏览器直接上传文件,阿里云oss上传sdk官方文档,阿里云错误,解决这个问题,上传很慢,一直签名失败,权限,不经过后端,纯前端直传

🏆 前端领域优质创作者 1万+

JUnit 写 TestCase

junit是java中书写unit test的framework,目前一些流行的unit test工具大都都是在junit上扩展而来的。目前它的版本是junit3.8.1,可以从www.junit.org上下载。 Eclipse中配置junit 在要使用JUNIT的project名上,点击properties--java build path-libraries, 点击Add External

00的专栏 1983

Nuvoton NPCM845X SoC

摘要:NPCM845X是Nuvoton推出的第四代BMC片上系统,专为服务器管理设计。采用四核Arm Cortex-A35架构,集成安全启动机制和硬件级安全组件,支持OP-TEE可信执行环境。提供完整的信任链设计,从Boot ROM到Linux内核分层验证。具备丰富外设接口和管理功能,支持OpenBMC、IPMI 2.0等标准,适用于数据中心安全管控需求。

Linux内核架构师 101

【硬刚Hadoop】HADOOP MAPREDUCE(1):概述

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的Hadoop部分补充。 1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 2MapReduce优缺点 2.1 优点 1)MapReduce易于编程 它简单的实现一些接口,就可以完成一个分布式程序..

微信搜:import_bigdata,大数据领域硬核原创作者 465

[转]Myeclipse里使用Junit

http://zph999.blog.hexun.com/15108859_d.html 简单记录一下,在MyEclipse中使用Junit 的方法,这一部分先记 Test Case 的创建方法。Test Case :是指对一个用例进行测试,比如说测试一个接口,对于接口来说,一组输入值就是一个Test Case 。MyEclipse中创建Junit 的步骤如下:1、选择一个存放测试

905

机器人中的数值优化(十三)——QP二次规划

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 2794

Junit测试代码基本骨架

Junit写出来测试代码的基本骨架的样式大概就是下面的:基本顺序就是(1) import junit.framework.* 下面所有的类(2) extends 用自己的测试类继承TestCase(3) 初始化和释放资源的方法 setUp()和tearDown()(4) 写一个构造函数用super 调用 父类构造函数(5) test开头的测试方法。(6) 定义tests

samsunge808的专栏 1024

R语言广义加型模型(GAM)的运用例子及实现教程

一旦拟合了广义加型模型,我们可以查看模型摘要和诊断,以评估模型的质量和拟合情况。# 查看模型摘要响应变量:mpg(汽车的燃油效率)拟合函数:mpg ~ s(hp) + s(wt)

Mrrunsen的博客 3447

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JUnit测试骨架简介

   JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即白盒测试。    JUnit测试骨架    使用JUnit时,主要都是通过继承TestCase类别来撰写测试用例,使用testXXX()名称来撰写单元测试。    用JUnit写测试真正所需要的就三件

星火baba 899

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

junit 单元测试简单骨架

import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4...

Jc0803kevin的专栏 272

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

软件测试(java junit骨架)

转载 http://developer.51cto.com/art/200906/130460.htm   JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。 Junit测试是程序员测试,即白盒测试。该项目主页:http://www.junit.org/ JUnit测试骨架 使用JUnit...

移动互联网改变生活,高效配对交易创造财富 1118

junit

JUnit测试骨架简介 http://developer.51cto.com 2009-06-19 16:26 zhangjunhd 51CTO博客 我要评论(0) 摘要:本文介绍了JUnit测试骨架。JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即白盒测试...

longxiaxia的博客 153

TTS 项目 HTTP 语音合成服务器完整部署指南:server.py、.whl 与 nginx/uwsgi 三种运行方式与模型打包实战

本文基于 Mozilla TTS 仓库的 [server/README.md](https://link.gitcode.com/i/658f82a14516ddbe86af72663c7c302c) 编写,系统讲解如何将训练好的 TTS 模型与声码器(vocoder)模型封装为可对外提供 HTTP 语音合成服务的 Web 服务器。你将掌握开发模式(直接运行 `server.py`)、包模式(安装

gitblog_01190的博客 1044

对junit单元测试一些了解

在junit中主要使用了观察者模式、组合模式、命令模式、模板模式这4中模式。 那么在junit中为了要用到观察者模式呢?我们知道,我们使用ant、eclipse等工具进行单元测试,但是他们测试后的结果却是以不同的形式去表示的,也就是出现了多样化,比如,ant测试后的结果是使用报表的形式表示的,而eclipse是则是以图形界面的形式去表示,那么在此junit中就使用观察者模式去设计的,因为观察者...

Tang Ji Zhong 218

JUnit测试框架使用介绍

JUnit是由Erich Gamma和Kent Beck编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即白盒测试。该项目主页:[url]http://www.junit.org/[/url] JUnit测试骨架 使用JUnit时,主要都是通过继承TestCase...

weixin_33807284的博客 133

单元测试之道-深入理解JUnit

这本书是从小工到专家系列之一。这个系列有一本总纲性的《程序员修炼之道-从小工到专家》以及《版本控制之道》《单元测试之道》《项目自动化之道》三本具体软件工程技术指导书。软件工程的重要性不必多言,数据结构和算法的重要性也日渐显露,所以此后学习一定要围绕这两方面,编程也要向这两方面靠拢。 不能这样搞测试:风和日丽的一天,一辆车顺利地开过一座桥。我们必须考虑很多的车,很烂的天气。Bug出现的位置常在边界

巩庆奎 1923
上一篇: API网址收藏
下一篇: <c:forEach varStatus="status">中 varStatus的属性简介
programloverjack
博客等级 码龄17年 5粉丝 252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值