【测试】JUnit

目 录

  • 一.注解
  • 二.断言
  • 三.用例的执行顺序
  • 四.参数化
  • 五.测试套件

自动化就是 selenium 脚本来实现的

junit 是 java 的单亓测试工具,只不过我们在实现自动化的时候需要借用一下下 junit 库里面提供的一些方法

引入依赖 Junit 5

<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.10.1</version><scope>test</scope>
</dependency>

一.注解

junit中提供了非常强大的注解功能。(取代了 main 函数执行的任务)

  • @Test:表示方法是测试方法,执行当前这个类时,会自动的执行该类下所有带@Test注解的用例

  • @BeforeEach:当前的方法需要在每个用例执行之前都执行一次

  • @BeforeAll:当前的方法需要在当前类下所有用例之前执行一次,被该注解修饰的方法必须为静态方法

  • @AfterEach:当前的方法需要在每个用例执行之后都执行一次

  • @AfterAll:当前的方法需要在当前类下所有用例之后执行一次,被该注解修饰的方法必须为静态方法

在这里插入图片描述


二.断言

Assertions 类

之前我们可知 “百度一下” 是属性值,当我们执行这个用例的时候,对于程序来说结果是正确的,对于测试人员来说是错误的。

对于测试人员来说,如果自动化测试用例执行结果是报错的,那么大多情况下是出现了bug,这种情况测试人员是需要立即去排查问题的

断言 匹配/不匹配:assertEquals / assertNotEquals

断言结果 为真/为假:assertTrue / assertFalse

断言结果 为空/不为空:assertNull / assertNotNull


三.用例的执行顺序

官方网站没有明确说明用例默认的执行顺序的规则

测试用例的执行并不会按照我们编写用例的顺序来执行

  1. 通过order注解来排序
    在这里插入图片描述
    先要使用注解说明当前类下所有的用例需要使用 order 注解来进行排序注意:该注解必须要用在类上
     
    然后通过 0rder 来指定用例的具体顺序

四.参数化

尽可能的通过一个用例,多组参数来模拟用户的行为

在使用参数化注解之前需要先声明该方法为参数化方法:@ParameterizedTest

  • 单参数:(要通过注解提供数据来源)

在这里插入图片描述

@ValueSource(数据类型方法 = {参数1,参数2,…})

数据类型包含:short,byte,int,long,float,double,char,boolean,java.lang.string

  • 多参数
  1. 从注解里手动编写数据源
    在这里插入图片描述
    每个双引号就是一组 参数/测试用例

  2. 从第三方 csv 文件读取数据源

在这里插入图片描述

创建好csv文件之后,一定要用系统自带的 Excel 工具来打开和编辑 csv 文件,不然会一堆乱码报错

  • 动态参数

在这里插入图片描述

如果我们要返回的数据类型是统一的,那么这里就直接写具体的类型

如果要返回的数据类型不统一,就需要使用组合类型 Arguments

还有第二种写法:

当我们不指定数据源方法名时,会自动的找跟用例方法名同名的静态方法

在这里插入图片描述

使用了参数化注解的方法不能再用@Test注解(只能作用在非参数化的用例上)


五.测试套件

当我们在不同的 Java.class 类中 或者 不同文件中,想把所有的注解下的程序同时运行起来该怎么做呢?测试套件解决了这个问题

先创建一个类,通过 @Suite 注解标识该类为测试套件类(而不是测试类)

方法一:指定类来运行用例

在这里插入图片描述

想要运行的用例必须要被@Test注解(除参数化的用例外)

方法二:指定包名来运行包下所有的用例

在这里插入图片描述

会发现包下有四个测试类,只运行了一个类

如果使用包名来指定运行的范围,那么该包下面所有的测试类的命名需要以 Test/Tests 结尾(T必须要大写)

想要运行的用例必须要被 @Test 注解(除参数化的用例外)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自然语言编程系列(二):自然语言处理(NLP)、编程语言处理(PPL)和GitHub Copilot X

编程语言处理的核心是计算机如何理解和执行预定义的人工语言&#xff08;编程语言&#xff09;&#xff0c;而自然语言处理则是研究如何使计算机理解并生成非正式、多样化的自然语言。GPT-4.0作为自然语言处理技术的最新迭代&#xff0c;其编程语言处理能力相较于前代模型有了显…

电子元器件基础5---二极管

除了电阻、电容和电感等线性元器件之外,还有二极管、三极管这些常用的非线性器件广泛应用于日常生活中。那么今天我们来介绍以下二极管这一常用的电子元器件。 一、二极管概念 二极管是用半导体材料(硅、硒、锗等)制成的一种电子器件 。二极管有两个电极,正极,又叫阳极;负…

django报错:Cannot use ImageField because Pillow is not installed

1、问题概述 ERRORS: accounts.User.avatar: (fields.E210) Cannot use ImageField because Pillow is not installed. HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "python -m pip install Pillow". System check identified 1 …

JDK1.8安装教程

目录 下载安装环境配置打开系统高级设置环境配置 验证安装是否成功 下载 https://www.oracle.com/java/technologies/downloads/#java8-windows 安装 打开安装包&#xff0c;点击下一步。 选择好自己熟悉的目的安装目录&#xff0c;点击下一步。 等待安装 选择好jre的安装目…

ubuntu22.04@laptop OpenCV Get Started: 013_contour_detection

ubuntu22.04laptop OpenCV Get Started: 013_contour_detection 1. 源由2. 应用Demo2.1 C应用Demo2.2 Python应用Demo 3. contour_approx应用3.1 读取图像并将其转换为灰度格式3.2 应用二进制阈值过滤算法3.3 查找对象轮廓3.4 绘制对象轮廓3.5 效果3.6 CHAIN_APPROX_SIMPLE v.s…

java中的枚举

枚举 枚举类型的概述 关键字&#xff1a;enum 你可以把枚举类型理解成是一个自定义的常量的序列 枚举的语法结构 定义的枚举类型文件 package com.it.xiaosi.demo01;/*** Classname : direction* Description : TODO 枚举* Author : lin_refuelqq.com*/ public enum direct…

springboot第56集:微服务框架,物联网IOT,SQL数据库MySQL底层,AOP收集业务操作日志架构周刊...

单点登录 1.配置代理信息 /*请求登陆的方法*/ "/modelLogin": {//本地服务接口地址&#xff0c;这是测试环境&#xff0c;正式环境需要更改下地址target: "http://127.0.0.1:6776/xxx-auth/",changeOrigin: true,pathRewrite: {"^/modelLogin": …

在ubuntu中制作ubuntu的U盘启动盘

概要&#xff1a; 本篇演示在ubuntu22.04中制作ubuntu22.04的U盘启动盘 一、下载ubuntu22.04的iso文件 访问ubuntu官网https://ubuntu.com自行下载ubuntu官网 二、制作U盘启动盘 打开系统自带软件Startup Disk Creator 软件会自动检测iso文件和U盘 点击Make Startup Disk…

【Java EE初阶十二】网络原理(二)

2. 传输层 2.2 TCP协议 2.2.2 关于可靠传输 4.滑动窗口 前面的三个机制&#xff0c;都是在保证 tcp 的可靠性&#xff1b; TCP 的可靠传输,是会影响传输的效率的.(多出了一些等待 ack 的时间,单位时间内能传输的数据就少了)&#xff1b; 滑动窗口,就让可靠传输对性能的影响,更…

MySQL数据库⑪_C/C++连接MySQL_发送请求

目录 1. 下载库文件 2. 使用库 3. 链接MySQL函数 4. C/C链接示例 5. 发送SQL请求 6. 获取查询结果 本篇完。 1. 下载库文件 要使用C/C连接MySQL&#xff0c;需要使用MySQL官网提供的库。 进入MySQL官网选择适合自己平台的mysql connect库&#xff0c;然后点击下载就行…

Day-02-02

Httpclient测试 安装HTTP Client插件 使用IDEA自带的http接口测试工具——HTTP Client Open in HTTP Client 生成测试用例 点击绿色箭头可以运行测试用例&#xff0c;控制台会输出结果。 保存和修改测试用例 在模块下新建一个api-test包用来存放测试用例&#xff0c;将生…

Packet content transfer stopped (received 8 bytes)

esp32烧录程序时报错&#xff1a;A fatal error occurred: Packet content transfer stopped (received 8 bytes) 解决方法&#xff1a; 降低上传速度&#xff0c;使用115200&#xff1b;更换flash模式&#xff0c;使用DIO方式重试如果还不行&#xff0c;检查flash连接情况&am…

failing dimm dimm location (uncorrectable memory component found)

开机界面出现这个 failing dimm dimm location (uncorrectable memory component found)“DIMM DIMM location. Uncorrectable memory component found” 是一条硬件故障信息&#xff0c;表明在服务器的某个特定双列直插式内存模块&#xff08;Dual In-line Memory Module, DI…

【漏洞复现】蓝网科技临床浏览系统信息泄露漏洞

Nx01 产品简介 蓝网科技临床浏览系统是一个专门用于医疗行业的软件系统&#xff0c;主要用于医生、护士和其他医疗专业人员在临床工作中进行信息浏览、查询和管理。 Nx02 漏洞描述 蓝网科技临床浏览系统存在信息泄露漏洞&#xff0c;攻击者可以利用该漏洞获取敏感信息。 Nx03…

深度学习基础之《TensorFlow框架(4)—Operation》

一、常见的OP 1、举例 类型实例标量运算add&#xff0c;sub&#xff0c;mul&#xff0c;div&#xff0c;exp&#xff0c;log&#xff0c;greater&#xff0c;less&#xff0c;equal向量运算concat&#xff0c;slice&#xff0c;splot&#xff0c;canstant&#xff0c;rank&am…

力扣72. 编辑距离(动态规划)

Problem: 72. 编辑距离 文章目录 题目描述思路复杂度Code 题目描述 思路 由于易得将字符串word1向word2转换和word2向word1转换是等效的&#xff0c;则我们假定统一为word1向word2转换&#xff01;&#xff01;&#xff01; 1.确定状态&#xff1a;我们假设现在有下标i&#x…

Python算法题集_随机链表的复制

Python算法题集_随机链表的复制 题138&#xff1a;随机链表的复制1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【双层循环】2) 改进版一【字典哈希】3) 改进版二【单层哈希】4) 改进版三【递归大法】 4. 最优算法 本文为Python算法题集之一的…

Netty基本组件

编解码器 编码器 类作用MessageToByteEncoder将消息编码为字节MessageToMessageEncoder将一种消息编码为另一种消息 解码器 类作用ByteToMessageDecoder将字节解码为消息MessageToMessageDecoder将一种消息解码为另一种消息

4 月 9 日至 4 月 10 日,Hack.Summit() 2024 首聚香江

Hack.Summit() 是一系列 Web3 开发者大会。2024 年的活动将于 2024 年 4 月 9 日至 4 月 10 日在香港数码港举行。自十年前首次举办以来&#xff0c;此次会议标志着 Hack.Summit() 首次在亚洲举办&#xff0c;香港被选为首次亚洲主办城市&#xff0c;这对 Hack VC 和该地区都具…

CMU和ETH联合研发了一个名为 「敏捷但安全」的新框架,为四足机器人在复杂环境中实现高速运动提供了解决方案

在高速机器人运动领域&#xff0c;实现同时兼顾速度和安全一直是一大挑战。但现在&#xff0c;卡内基梅隆大学&#xff08;CMU&#xff09;和苏黎世联邦理工学院&#xff08;ETH&#xff09;的研究团队带来了突破性进展。他们开发的新型四足机器人算法&#xff0c;不仅能在复杂…