Junit测试框架详解

news/2024/11/26 9:52:57/

目录

Junit框架

导入Junit到项目

Junit注解

@Test

@Disabled

@BeforeAll  / @AfterAll

@BeforeEach / @ AfterEach

 参数化

单参数

多参数

CSV获取参数

方法获取参数

断言

assertEquals / assertNotEquals

assertNull / assertNotNull

用例执行顺序

 测试套件Suite

指定类,添加到套件中执行

指定包,添加到套件中执行


Junit框架

Junit框架是单元测试框架,方便测试项目,使我们在工作中必不可少的。

导入Junit到项目

        登录Maven中央仓库:https://mvnrepository.com/  ,搜索Junit进行下载依赖并导入到项目中的pom.xml中

选择junit具体版本号

 导入junit依赖到pom.xml中

 

Junit注解

        在Junit注解中,常用的有@Test、@Disabled、@BeforeAll、@AfterAll、@BeforeEach、@AfterEach这几种。接下来就将详细介绍这几种注解在项目的使用方法。

@Test

表示当前的这个方法是测试用例

在使用@Test注解时,如果Test标红了,则提示未导包:

import org.junit.jupiter.api.Test;

@Disabled

表示测试时可以忽视这个测试用例

@BeforeAll  / @AfterAll

@BeforeAll 表示在所有的测试用例运行之跑对应的方法

@AfterAll 表示在所有的测试用例运行之跑对应的方法

注意点:@BeforeAll 和@AfterAll 注解对应的方法时需要使用static静态方法

@BeforeEach / @ AfterEach

@BeforeEach 表示运行每个测试用例之前先运行该测试用例

@AfterEach  表示运行每个测试用例之后在运行该测试用例

 参数化

        我们在前面使用测试方法的时候都没有传入参数,当我们想要在测试用例中传入参数时,此时就需要使用到此时的参数化。

        经常使用到的参数化有单参数多参数CSV获取参数方法获取参数

        在使用参数时,需要导入参数依赖,同样的操作,在中央仓库搜索params,将相关依赖导入到pom.xml中

单参数

单参数需要使用如下注解:

@ParameterizedTest
@ValueSource(strings  = {"AA","BB","DD"})

(查看ValueSource源码)注意传入参数格式:

 

多参数

多参数使用的注解是@CsvSource,传入的多参数以字符串数组形式传入,查看源码即可

@ParameterizedTest
@CsvSource("小红,3,4")

CSV获取参数

CSV传入参数是以文件的形式传入参数,使用注解:

 @CsvFileSource(resources = "TestSource.csv")         TestSource.csv为创建的文件名

方法获取参数

方法获取参数就是定义一个新方法,在方法中定义多个参数,然后从方法中来获取参数

使用注解:

 @ParameterizedTest
    @MethodSource("hello")    hello为方法名

断言

assertEquals / assertNotEquals

通过这两个方法我们可以比较我们要测试的目标和我们所预期的是否一致。

assertEquals

 assertNotEquals

 

assertNull / assertNotNull

可以判断实际值是否为空

assertNull  预期值是null

 assertNotNull 预期值不是null

用例执行顺序

        Junit里面测试用例的测试顺序默认是不确定的,官方文档没有明确给出。但是我们可以使用Junit自带的方法来自定义测试用例的测试顺序

1、在使用排序注解之前,需要在当前类之前加上标记排序的注解

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)  //标记当前类方法来进行排序

2、使用@order注解来自定义排序

@Order()    //()为数字即自定义执行顺序

面试题:假如面试官问为什么要使用Junit里面的排序方法?

             答:如果测试用例之间存在关联关系的话,就需要手动的来指定测试用例的执行顺序

 测试套件Suite

测试套件就是让我们一次性可以执行多个类或者多个包避免我们一个一个类来点击测试,或者把所有的测试都写到一个类中。

在进行测试套件之前,需要先导入Suite的相关依赖和Engine的依赖(即需要导入2个依赖)

1、在Maven中央仓库下载Suite依赖

把下面相关依赖导入pom.xml中

 2、导入Engine的依赖

 

指定类,添加到套件中执行

创建一个测试套件类,将各个测试用例所在的类添加到测试套件类中

使用到的注解:

@Suite
@SelectClasses({Test01.class,Test02.class}) //Test01和Test02为测试类

 

指定包,添加到套件中执行

创建一个测试套件包,将各个测试用例所在的包添加到测试套件包(用法和指定类测试套件一致)

使用到的注解:

@Suite
@SelectPackages({"testPackage01","testPackage02"})

 


http://www.ppmy.cn/news/91771.html

相关文章

你知道什么叫三目表达式吗

目录 什么是三目表达式? 运用 1.单个使用 2.嵌套使用 什么是三目表达式? 1.三目表达式是一种编程中常见的表达式,它能够有效地帮助我们解决一些问题。 2.三目表达式由三个部分组成,分别是:条件表达式、结果表达式 听不懂么,那我们就来举个…

ICLR2023 | Mole-BERT: 对分子GNN预训练的反思

原文标题:MOLE-BERT: RETHINKING PRE-TRAINING GRAPH NEURAL NETWORKS FOR MOLECULES 原文链接:Mole-BERT: Rethinking Pre-training Graph Neural Networks for Molecules | OpenReview https://github.com/junxia97/Mole-BERT 一、Introduction At…

完全详解权限系统设计方案

1 为什么需要权限管理 日常工作中权限的问题时时刻刻伴随着我们,程序员新入职一家公司需要找人开通各种权限,比如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查数据的权限等等。 在很多时候我们会觉得这么多繁杂的申请给工作带…

Git基础笔记(只含常用命令)

1.Git基本概念 1.git三区 工作区 -->git add 暂存区 --> git commit版本区域 暂存区用来存放临时文件,相当于只编辑没有保存 2.文件状态 命令 git status 查看文件状态 大体来说有被版本管理和没被版本管理两种状态 a.txt 执行了git add 3.git本地仓库命令 g…

Linux:查看进程。

Linux:查看进程。 windows linux TTY如果是?说明是不是终端(控制台)启动的,而是系统内部自己启动的。 TIME是启动Linux后,这个进程一共占用了cpu多少时间00…

TFM—用于实时监控和数据管理的远程试验管理平台

随着信息技术的高速发展,企业对远程试验实时监控与数据管理的需求日益增强。而利用远程试验信息协同技术,可突破部门与地域的限制,并把试验现场的车辆状态信息、试验数据和分析结果实时传输给数据分析部门和设计部门等,从而缩短时…

Java异常处理的最佳实践

异常处理的原则 1.抛出异常,要针对具体问题来抛出异常,抛出的异常要足够具体详细; 抛出的异常,应能通过异常类名和message准确说明异常的类型和产生的原因。 2.捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃…

大模型即将改变世界,百度先上牌桌

“未来,所有的应用都将基于大模型来开发,每一个行业都应该有属于自己的大模型,大模型会深度融合到实体经济当中去。” 作者|思杭 斗斗 编辑|皮爷 出品|产业家 “大模型即将改变世界。”5月26日,李彦宏在中关村论坛说道。 而…