【测试】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.hqwc.cn/news/474270.html

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

相关文章

事务管理 及 AOP

一、事务管理 1.1 事务回顾 1.2 Spring事务管理 1.3 事务进阶 1.3.1 rollbackfor 1.3.2 propagation 控制台日志过滤插件&#xff1a; 查看事务管理日志是JdbcTrsactionManager类&#xff1a; 在控制台找到JdbcTrsactionManager——右击——add highlight——红色——所有事…

【教学类-19-11】20240214《ABAB式-规律黏贴18格-手工纸15*15CM-复制空表 有边框》(中班)

背景需求 利用15*15CM手工纸制作AB色块手环&#xff08;手工纸自带色彩&#xff09;&#xff0c;一页36格子&#xff0c;空的&#xff0c;本代码就是复制有边框的模板&#xff0c;5份 素材准备 用常用的方法word转PDF&#xff0c;太慢了 改用import shutil复制 代码展示 # #…

django中事务和锁

目录 一&#xff1a;事务&#xff08;Transactions&#xff09; 二&#xff1a;锁 在Django中&#xff0c;事务和锁是数据库操作中的两个重要概念&#xff0c;它们用于确保数据的完整性和一致性。下面我将分别解释这两个概念在Django中的应用。 一&#xff1a;事务&#xff…

JWT登录验证前后端设计与实现笔记

设计内容 前端 配置全局前置路由守卫axios拦截器登录页面和主页 后端 JWT的封装登录接口中间件放行mysql数据库的连接 详细设计 路由设计 配置全局前置守卫&#xff0c;如果访问的是登录页面则放行&#xff0c;不是则进入判断是否有token&#xff0c;没有则拦截回到登录…

数学建模【线性规划】

一、线性规划简介 线性规划通俗讲就是“有限的资源中获取最大的收益”&#xff08;优化类问题&#xff09;。而且所有的变量关系式都是线性的&#xff0c;不存在x、指数函数、对数函数、反比例函数、三角函数等。此模型要优化的就是在一组线性约束条件下&#xff0c;求线性目标…

使用Autodl云服务器或其他远程机实现在本地部署知识图谱数据库Neo4j

本篇博客的目的在于提高读者的使用效率 温馨提醒&#xff1a;以下操作均可在无卡开机状态下就可完成 一.安装JDK 和 Neo4j 1.1 ssh至云服务器 打开你的pycharm或者其他IDE工具或者本地终端&#xff0c;ssh连接到autodl的服务器。(这一步很简单如下图) 1.2 安装JDK 由于我…

【ChatIE】论文解读:Zero-Shot Information Extraction via Chatting with ChatGPT

文章目录 介绍ChatIEEntity-Relation Triple Extration (RE)Named Entity Recognition (NER)Event Extraction (EE) 实验结果结论 论文&#xff1a;Zero-Shot Information Extraction via Chatting with ChatGPT 作者&#xff1a;Xiang Wei, Xingyu Cui, Ning Cheng, Xiaobin W…

PyTorch使用Tricks:学习率衰减 !!

文章目录 前言 1、指数衰减 2、固定步长衰减 3、多步长衰减 4、余弦退火衰减 5、自适应学习率衰减 6、自定义函数实现学习率调整&#xff1a;不同层不同的学习率 前言 在训练神经网络时&#xff0c;如果学习率过大&#xff0c;优化算法可能会在最优解附近震荡而无法收敛&#x…

解决IDEA的Project无法正常显示的问题

一、问题描述 打开IDEA&#xff0c;结果发现项目结构显示有问题&#xff1a; 二、解决办法 File -> Project Structure… -> Project Settings (选Modules)&#xff0c;然后导入Module 结果&#xff1a; 补充&#xff1a; IDEA提示“The imported module settings a…

FlashMeeting(基于FFmpeg+openCV)视频语音通讯系统

Web端体验地址&#xff1a;https://download.csdn.net/download/XiBuQiuChong/88805337 客户端下载地址&#xff1a;https://download.csdn.net/download/XiBuQiuChong/88805337 FlashMeeting(基于FFmpegopenCV)是一整套先进的以FFmpegopenCV技术为基础的视频语音通讯系统。利…

【沐风老师】3DMAX一键书籍生成插件BookMaker使用方法详解

3DMAX书籍制作者插件BookMaker使用方法 3DMAX一键书籍生成插件BookMaker&#xff0c;是用于在3dMax中创建书籍的插件&#xff0c;可以创建高细节的3D书籍模型&#xff0c;具有不同的书籍类型可以选择。 【适用版本】 3dMax2012 – 2024&#xff08;不仅限于此范围&#xff09;…

Sora 文生视频提示词实例集 2

Prompt: Historical footage of California during the gold rush. 加利福尼亚淘金热期间的历史影像。 Prompt: A close up view of a glass sphere that has a zen garden within it. There is a small dwarf in the sphere who is raking the zen garden and creating patter…