Junit单元测试框架

本文详细介绍了JUnit单元测试框架的基础知识,包括注解的使用(如@Test、@BeforeAll、@AfterClass)、断言的重要性、测试用例顺序控制、参数化测试以及如何创建和管理测试套件。掌握这些有助于提升自动化测试效率。
摘要由CSDN通过智能技术生成

目录

了解 Junit

一、注解

1、@Test

2、@BeforeEach,@BeforeAll

 3、@After,@AfterClass

二、断言

三、用例执行顺序

1、方法的排序——通过 @Order 注解来排序

 2、为什么我们需要用到 junit 的排序功能?

四、参数化

五、测试套件Suite


前言:在掌握selenium 基础语法后,我们还必须掌握 Juint 单元测试框架之后才能实现真正的自动化测试!

了解 Junit

junit 是一个开源的 java 语言的单元测试框架,是 java 方向使用最广泛的 单元测试框架,因此我们应该学习并使用 java 并且掌握单元测试的编写!

selenium 和 junit 的联系?

如果我们要实现一个灯泡,selenium 就是一个灯泡,而 juint 就是电源

juint 框架需要的依赖:(Java版本最低为8)

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.8.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite</artifactId>
            <version>1.8.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-reporting</artifactId>
            <version>1.8.2</version>
            <scope>test</scope>
        </dependency>

上一章屏幕截图也需要一个依赖:

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
            <scope>test</scope>
        </dependency>

一、注解

1、@Test

 可以发现 在添加 test 注解后 我们的普通方法不需要 main 函数也可以运行

2、@BeforeEach,@BeforeAll

表示被注解的方法应该在其他方法之前 

BeforeEach 表示所有方法执行前 都要执行一次 BeforeEach 注解的方法

BeforeAll 表示所有方法之前执行前 都要确保 BefoAll 注解的方法已经执行过了

 

 

 这里我在学习的时候引入以上部分的依赖发现是无法正常完成测试的,在我更换依赖后才能正常测试(别骂了别骂了 呜呜呜~)

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>

记得千万别加 scope !

那这里我自己发现对应的注解其实也是要更换的 

BeforeEach  —— Before  

BeforeAll  —— BefoClass

BeforeClass注解只能适用于静态方法

 3、@After,@AfterClass

一样的,直接用就行~

二、断言

写自动化测试,要么结果是正确的,要么只能是错误的

而很多时候我们的测试如果不符合我们的预期,我们是没办法根据 “通过” 与否来辨别的,这时候断言就很有必要了

这里记得  Assertions 引入的包:

import org.junit.jupiter.api.Assertions;

 

非常智能~~ 

assert拥有非常多的方法。但方法都很浅显易懂,直接使用即可~

三、用例执行顺序

junit 的默认测试顺序是不固定的,官方文档也没有明确给出

 可以看到并不是按照方法的先后顺序来执行的

我们可以 junit 提供的方法来手动设置用例的执行顺序

1、方法的排序——通过 @Order 注解来排序

首先给我们的类引入 Order 注解

 然后就可以给我们的方法添加注解排序

 ​​​​​​​

 2、为什么我们需要用到 junit 的排序功能?

junit 的默认执行顺序不固定,如果用例之间存在关联关系,我们就必须手动指定用例的执行顺序

这也同时提醒我们 ,在编写测试用例时尽量保持用例的独立性,减少冗余

四、参数化

@Parameterizetest 标注方法类型为参数化 (不需要再添加@Test 注解,否则会多执行一编)

需要添加的参数的来源

@ValueSource(类型={参数1,参数2})  单参数

使用原生类型:int,String等

 

 多参数情况

@CsvSource

@ScvSource(value = {“小米,20”,“振鹏,14”})

 

默认分隔符是 ” , “

但可以手动设置

 

 那如果我们的数据里含有逗号呢?

必须使用单引号作为转义字符!

 如果参数非常多,在代码中编写不好看,就可以借助文件注入的方式来添加

 我们需要在当前项目路径下 resources 里创建该文件( .csv )

依然可以读入

 

 指定本地路径下的任意 dsv 文件:

 如果我们参数为空,则默认为null,但一定记得数字等基本类型是 没有null 值的,会抛异常!

动态参数?

MethodSource(”“)

参数为数据来源中的方法名

单参数

 如果不指定数据来源,则默认找和用例同名的静态方法!

 

 

五、测试套件Suite

指定类 添加到套件中执行

 选择指定的包添加到套件 (所有的文件都要以Test命名,同时用例必须要加上 @Test 注解,否则不会执行)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值