Junit测试框架详解

目录

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测试框架详解_第1张图片

选择junit具体版本号

Junit测试框架详解_第2张图片

 导入junit依赖到pom.xml中Junit测试框架详解_第3张图片

 Junit测试框架详解_第4张图片

Junit注解

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

@Test

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

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

import org.junit.jupiter.api.Test;

解决方法:点击@Test  选择add Maven选项即可

Junit测试框架详解_第5张图片Junit测试框架详解_第6张图片

Junit测试框架详解_第7张图片

@Disabled

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

Junit测试框架详解_第8张图片

Junit测试框架详解_第9张图片

@BeforeAll  / @AfterAll

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

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

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

Junit测试框架详解_第10张图片

@BeforeEach / @ AfterEach

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

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

Junit测试框架详解_第11张图片

 参数化

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

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

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

Junit测试框架详解_第12张图片

Junit测试框架详解_第13张图片

Junit测试框架详解_第14张图片

单参数

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

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

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

Junit测试框架详解_第15张图片

 Junit测试框架详解_第16张图片

多参数

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

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

Junit测试框架详解_第17张图片

CSV获取参数

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

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

Junit测试框架详解_第18张图片

Junit测试框架详解_第19张图片

方法获取参数

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

使用注解:

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

Junit测试框架详解_第20张图片

断言

assertEquals / assertNotEquals

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

assertEquals

Junit测试框架详解_第21张图片

Junit测试框架详解_第22张图片

 assertNotEquals

Junit测试框架详解_第23张图片 Junit测试框架详解_第24张图片

assertNull / assertNotNull

可以判断实际值是否为空

assertNull  预期值是null

Junit测试框架详解_第25张图片

 assertNotNull 预期值不是null

Junit测试框架详解_第26张图片

用例执行顺序

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

1、此注解不能省,牢记牢记在使用排序注解之前,需要在当前类之前加上标记排序注解:

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

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

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

Junit测试框架详解_第27张图片

Junit测试框架详解_第28张图片

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

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

 测试套件Suite

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

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

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

Junit测试框架详解_第29张图片

Junit测试框架详解_第30张图片

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

Junit测试框架详解_第31张图片

 2、导入Engine的依赖

Junit测试框架详解_第32张图片

Junit测试框架详解_第33张图片

 Junit测试框架详解_第34张图片

Junit测试框架详解_第35张图片

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

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

使用到的注解:

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

Junit测试框架详解_第36张图片

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

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

使用到的注解:

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

Junit测试框架详解_第37张图片

你可能感兴趣的:(测试开发,junit,单元测试,java)