Junit单元测试

单元测试使用JUnit 5 1. JUnit 是什么?JUnit 是一个 Java 编程语言的开源测试框架,它是xUnit架构的一部分,xUnit是为多种编程语言创建的单元测试库的通用名称。JUnit是由Erich Gamma和Kent Beck创建的,目前已经发展到JUnit 5。它提供了一些功能,使编写测试变得容易,包括支持多个测试用例、断言和报告。JUnit也是多功能的,允许用各种语言编写测试。JUnit 主要用于单元测试,但它也可用于其他测试,如功能和集成测试。功能测试是测试系统的功能。 阅读详情

白盒测试

定义

白盒测试又称结构测试、透明盒测试,是基于代码的测试。白盒测试是一种测试用例设计方法。全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

错误潜伏在角落里,聚集在边界上。

测试方法

白盒测试的测试方法中运用最为广泛的是基本路径测试法。

基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。

单元测试

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。

单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。

Junit单元测试

注解

转载:常用注解详细说明
Java注解((Annotation)的使用方法是@注解名 ,能通过简单的词语来实现一些功能。在junit中常用的注解有@Test、@Ignore、@BeforeClass、@AfterClass、@Before、@After、@Runwith、@Parameters
以下是相关的介绍和使用说明:

一.@Test

在junit3中,是通过对测试类和测试方法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类。在junit4中,定义一个 测试方法变得简单很多,只需要在方法前加上@Test就行了。
注意:测试方法必须是public void,即公共、无返回数据。可以抛出异常。

二.@Ignore

有时候我们想暂时不运行某些测试方法\测试类,可以在方法前加上这个注解。在运行结果中,junit会统计忽略的用例数,来提醒你。但是不建议经常这么做,因为这样的坏处时,容易忘记去更新这些测试方法,导致代码不够干净,用例遗漏。

三.@BeforeClass

当我们运行几个有关联的用例时,可能会在数据准备或其它前期准备中执行一些相同的命令,这个时候为了让代码更清晰,更少冗余,可以将公用的部分提取出来,放在一个方法里,并为这个方法注解@BeforeClass。意思是在测试类里所有用例运行之前,运行一次这个方法。例如创建数据库连接、读取文件等。
注意:方法名可以任意,但必须是public static void,即公开、静态、无返回。这个方法只会运行一次。

四.@AfterClass

跟@BeforeClass对应,在测试类里所有用例运行之后,运行一次。用于处理一些测试后续工作,例如清理数据,恢复现场。
注意:同样必须是public static void,即公开、静态、无返回。这个方法只会运行一次。

五.@Before

与@BeforeClass的区别在于,@Before不止运行一次,它会在每个用例运行之前都运行一次。主要用于一些独立于用例之间的准备工作。比如两个用例都需要读取数据库里的用户A信息,但第一个用例会删除这个用户A,而第二个用例需要修改用户A。那么可以用@BeforeClass创建数据库连接。用@Before来插入一条用户A信息。
注意:必须是public void,不能为static。不止运行一次,根据用例数而定。

六.@After

与@Before对应。

七.@Runwith

首先要分清几个概念:测试方法、测试类、测试集、测试运行器。
其中测试方法就是用@Test注解的一些函数。
测试类是包含一个或多个测试方法的一个**Test.java文件,
测试集是一个suite,可能包含多个测试类。
测试运行器则决定了用什么方式偏好去运行这些测试集/类/方法。

而@Runwith就是放在测试类名之前,用来确定这个类怎么运行的。也可以不标注,会使用默认运行器。

常见的运行器有:
1. @RunWith(Parameterized.class) 参数化运行器,配合@Parameters使用junit的参数化功能
2. @RunWith(Suite.class)
@SuiteClasses({ATest.class,BTest.class,CTest.class})
测试集运行器配合使用测试集功能
3. @RunWith(JUnit4.class)
junit4的默认运行器
4. @RunWith(JUnit38ClassRunner.class)
用于兼容junit3.8的运行器
5. 一些其它运行器具备更多功能。例如@RunWith(SpringJUnit4ClassRunner.class)集成了spring的一些功能

用法

  1. 在工程app/src目录下创建test\java目录,并创建测试类ExampleUnitTest。(新建工程默认也会存在此测试类)
  2. gradle文件配置

    dependencies {
        testCompile 'junit:junit:4.12'
    }
  3. 创建测试类

    public class ExampleUnitTestTest {
        @Before
        public void setUp() throws Exception {
            System.out.println("setUP");
        }
        @After
        public void tearDown() throws Exception {
            System.out.println("tearDown");
    
        }
        @Test
        public void addition_isCorrect() throws Exception {
            System.out.println("addition_isCorrect");
        }
    
    }
IDEA中使用JUnit4单元测试 本文介绍JUnit单元测试的重要性,然后详细介绍了使用IDEA工具搭建单元测试的步骤。 阅读详情

相关推荐

JUnit5 单元测试详解

文章介绍Java单元测试相关知识。单元测试针对软件最小可测试单元,能降低错误风险、提升代码质量。JUnit 5是流行的Java单元测试框架,引入方式有Maven和Gradle,也可从官方仓库下载jar包,可在项目结构中查看是否引入成功。编写单元测试时,类名遵循被测试类名+Test,方法用@Test注解,返回值为void且无参数,通过断言判断期望值和实际值。JUnit 5提供多种常用注解,可解决Scanner失效问题,还有忽略测试、超时测试等高级功能,合理使用可提升代码质量。

m0_73941339的博客 2746

ExampleUnitTest的用法

android studio ExampleUnitTest 自己在项目中很常用,这里主要说下自己 常用来做打印log日志, 比如项目中有些打印需要拿出来单独测试可以不, 下面一个截取的为例子 首先项目选为android 这样在...test里面就能看到了 写出部分 String code="12345678"; code=code.substring(code.lengt...

小牧在一直在学习,在前进的道路上大家一起学习,进步。 6456

android_test_example:Android UnitTest 示例。 花了整个周末来进行 Android 测试。 该死!

android_test_example 花了周末时间进行 Android 测试。 该死! 环境 安卓工作室 1.0.2 JDK 1.8 x64 安卓仪器工具 从默认的android模板创建

ExampleUnitTest使用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33738578的博客 1817

不会写GLSL?用Cesium 1.120 + Heatmap.js 2.0.5也能搞定动态洪水模拟(附完整源码)

本文介绍了一种无需GLSL编程的3D洪水动态模拟方案,结合Cesium 1.120和Heatmap.js 2.0.5实现高效可视化。通过数据层、可视化层和集成层的技术降级方案,开发者可以快速构建专业级洪水演进效果,适用于应急管理、水利工程等场景。文章包含完整源码和性能优化技巧。

weixin_30329623的博客 520

学习使用turtlebot2——ROS上安装turtlebot2

安装环境:    安装Ubuntu 14.04版本和ROS Indigo    参考:http://wiki.ros.org/turtlebot/Tutorials安装步骤    有两种安装方法,一种直接的安装命令,另外一种源码编译安装,区别在于:直接安装命令是安装在电脑默认路径/opt/ros/indigo/share里面不便于更改代码,因为默认路径下文件一般有访问权限,无法直接更改,需要使用s...

weixin_42670641的博客 2531

Android 单元测试学习

Android 单元测试学习由于完全没用过android studio做过单元测试,一起学习:基本说明 我用的是 android studio 2.2.3版本。如下图是新生成的android应用目录结构。 main包是主要的代码和资源文件 androidTest包是测试android运行环境的。 test包是测试单元模块的 ExampleUnitTest类Example

kayle 433

5-DOF机械臂课程设计(一)之正逆运动学

文章目录基本要求基本概念关节坐标系的建立正运动学求解DH参数表的建立逆运动学求解多解下解的选取源码下载后续 基本要求 ​ 开发上位机程序,要求有良好的界面,能提供关节空间下和笛卡尔坐 标下表示的目标位姿点和中间若干经过点的输入功能,进行轨迹规划, 并控制机械臂沿轨迹运动,最终完成目标抓取的任务。 基本概念 连杆长度 :2个相邻关节轴线之间的距离 连杆扭角 :2个相邻关节轴线之间的角度 连杆偏距 :2个关节坐标系的X轴之间的距离 关节角度 :关节变量 计算时需要加初始角度偏移 关节坐标系的建立 ​ 根据《机

Rosen的博客 5855

Android单元测试的简单使用

我对测试的粗浅理解任何软件的开发过程中,测试绝对是不可或缺的一环,其重要程度几乎和开发不相上下。 然鹅! 在我多年的开发经验中(容我装个B(。・∀・)ノ),遇到的包含单元测试的项目或者愿意主动写测试的程序员却少之又少。 当然我们有一大堆不写测试的理由,比如项目时间太紧张或者项目太简单,测试没必要,再或者我是大神,代码根本不会出现bug。 还有更根本的原因就是大多数开发者在学习过程中,注重的更

lxy594328762的专栏 578

全局子程序 参数调用

为什么要子程序: 为了实现程序结构化,我们尽量使用不同功能的功能块来实现一些特定的功能, 子程序接口: 使用过程的注意事项,尤其是数组使用时的注意事项 从一个主程序中可以将参数传递到局部或全局子程序和函数中。 怎样传递参数有 2 种方式: 作为 IN 参数 变量值在主程序中保持不变。 这种传递方式也称为“ 值传递 (Call by Value)”。 作为 OUT 参数 子程序读取并更改该值,然后将新值写回到主程序中。 这种传递方式也称为“Call by Reference”。 举例说明 1 DEF MY

Eric_Yang1024的博客 1095

在 TASKPROCESSING 上为 ABAP OData 服务添加多个系统别名:从原理到落地的完整实践

本文面向SAP Gateway与ABAP开发者,详细讲解如何在TASKPROCESSING OData服务上添加系统别名。首先介绍了系统别名的概念与设计初衷,阐述了添加别名的业务场景需求,包括多系统接入、用户分流和灰度发布等。随后提供了标准配置步骤,从SPRO路径到具体操作说明,并分享了三个实际案例说明如何实现跨区域统一待办、按用户角色分流和灰度发布。最后给出了验证方法和常见问题解决方案,帮助开发者掌握这项基础但关键的配置技能,实现服务路由的可控管理。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 136

android studio 测试两种测试用例的切换问题

ANDROID STUDIO 1.5使用JUNIT单元测试,以及“TEST RUNNING STARTEDTEST RUNNING FAILED: INSTRUMENTATION RUN FAILED DUE TO 'JAVA.LANG.RUNTIMEEXCEPTION' EMPTY TEST SUITE” 2015 年 11 月 26 日 默默 发表回复 331 浏览

Working_Harder的专栏 6334

车间数据孤岛终于破了!C#上位机+MQTT打通产线与MES,数据延迟从小时级降到秒级

本文针对工业上位机开发中常见的车间数据与企业管理系统(MES)割裂问题,提出基于C#和MQTT协议的完整解决方案。通过EMQX MQTT Broker实现数据实时双向传输,将质量追溯时间从2小时缩短至10秒,生产计划自动下发,实现秒级数据延迟。方案采用分层解耦架构,支持设备更换和系统升级,核心优势包括低延迟、高可靠性和易扩展性。文章详细介绍了MQTT协议选型理由、整体架构设计、技术选型(EMQX Broker和MqttNet客户端),并提供了C#实现代码和部署流程。该方案已在实际产线验证,可有效解决&quo

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 479

JUnit4 / JUnit 5 全面详解【单元测试、Maven】

JUnit4 / JUnit 5 全面详解【单元测试、Maven】

青年有志 1万+

从地方政府网站抓取政务公开数据:Python爬虫技术详解

在本文中,我们通过具体实例介绍了如何使用Python编写爬虫,从地方政府门户网站抓取政务公开数据。我们使用了requestsSelenium等最新技术,结合SQLite数据库存储抓取的数据,最后使用matplotlib进行数据可视化分析。通过本项目,您可以掌握如何抓取政府网站的公开数据,并将其进行清洗、存储和分析。这些技术对于进行政府政策分析、公共服务分析等方面具有重要的实际意义。希望通过本文的介绍,您能够更好地理解政务数据抓取的流程和方法,并能在实际工作中运用这些技术进行数据采集和分析。

2201_76125261的博客 1701

分享6款文字语音生成驱动虚拟数字人说话的开源项目

对定性和定量结果的大量实验表明,我们的算法实现了高质量的照片真实感对话头部视频,包括根据语音节奏进行的各种面部表情和头部运动,并超过了最先进的水平。我们的系统包含三个阶段。当然,FACEGOOD Audio2face 部分也可根据自己的喜好进行重新训练,比如你想用自己的声音或其它类型的声音,或者不同于 FACEGOOD 使用的模型绑定作为驱动数据,都可以根据下面提到的流程完成自己专属的动画驱动算法模型训练。兼顾生成的韵律和外表的相似,除了面部,考虑到了头部的动作,虑了背景区域的artifact。

南七小僧的学海无涯 3048

JUnit介绍:单元测试

本文将简单介绍单元测试以及如何使用单元测试

weixin_47510148的博客 1938

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java IDEA JUnit 单元测试

JUnit是一个开源的 Java 单元测试框架,它使得组织和运行测试代码变得非常简单,利用JUnit可以轻松地编写和执行单元测试,并且可以清楚地看到哪些测试成功,哪些失败JUnit 还提供了生成测试报告的功能,报告不仅包含测试的成功率,还能统计被测试代码的覆盖率。通过进行单元测试,我们可以确保每个方法按照预期正确运行。如果我们修改了某个方法的代码,只需要确保相应的单元测试通过,就可以认为修改是正确的。此外,测试代码本身也可以作为示例代码,用于演示如何调用该方法。

笔记 7298

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

idea单元测试- Junit

是一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。单元测试、集成测试、系统测试、验收测试。1). 单元测试介绍:对软件的基本组成单位进行测试,最小测试单位。目的:检验软件基本组成单位的正确性。测试人员:开发人员2). 集成测试介绍:将已分别通过测试的单元,按设计要求组合成系统或子系统,再进行的测试。目的:检查单元之间的协作是否正确。测试人员:开发人员3). 系统测试介绍:对已经集成好的软件系统进行彻底的测试。目的:验证软件系统的正确性、性能是否满足指定的要求。测试人员:测试人员。

m0_67824084的博客 2964

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

在Eclipse中使用JUnit进行单元测试

JUnit是什么? JUnit的官网给出的简介: JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks. 每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。JUn...

xyzhang的博客 4432

如何在Java中使用JUnit进行单元测试

如果你正在开发一个基于Web的Java应用,可以借助Chrome官网提供的开发者工具来监控和分析你的API请求、响应以及其他Web相关的任务。希望通过本文,你能够更加熟悉JUnit的使用方法,并在日常开发中灵活运用,提升开发效率。JUnit是一个开源的测试框架,用于编写和运行Java程序的单元测试。在JUnit的帮助下,开发人员可以快速地测试代码的正确性,减少错误,并提高开发效率。在这个测试类中,我们使用了@Test注解来标记一个测试方法,并使用assertEquals方法来验证加法的结果是否正确。

OKCRoss的博客 1897

java中Junit单元测试

Junit单元测试 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。Java里单元指一个类。 JUnit ,是一个开源的Java单元测试框架,是 Java的标准单元测试库,是非常重要第三方 Java 库,由 Kent Beck 和 Erich Gamma 开发。 Junit作为一个软件测试的工具,JUnit可以不破坏java原代码,使用方便,添加快捷,代

学习笔记 3万+

JUnit 单元测试(详解)

本文为JUnit单元测试相关知识,下边将对JUnit单元测试概念,JUnit安装与使用,编写和运行@Test单元测试方法,设置执行JUnit用例时支持控制台输入,定义test测试方法模板等进行详尽介绍~

共同学习,共同成长 1944

JUnit 单元测试

总之,JUnit 是 Java 中最流行的单元测试框架之一,它提供了一个简洁而强大的平台,用于编写和运行自动化测试。JUnit 的核心就是那几个测试方法注解:⨳ @Test是最基本的测试注解,用于独立的、简单的测试场景。可以使用各种参数源(如数组、CSV 文件、方法等)提供测试输入,适用于参数化测试场景。通过指定重复次数,测试方法会被多次执行。这在需要验证方法的幂等性或检查重复执行时的行为时非常有用。适合高级场景,通过扩展机制重复执行同一个测试方法,但每次在不同的上下文中运行。

2301_78976656的博客 1302

利用JUNIT进行单元测试

利用JUNIT进行单元测试杨恒贤(yanghx@neusoft.com) 1.  当进行单元测试时,我们应该利用回归测试方法。2.  Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。3.  Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接

优美弧度 1899
上一篇: XML中输入特殊符号
下一篇: 彻底了解RxJava —— flatMap()
青菜小王子
博客等级 码龄11年 1695粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青菜小王子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值