Junit5集成到Maven工程

2021-09-23  本文已影响0人  木木与呆呆

1.说明

Junit5是单元测试框架Juint4的升级版,
与Junit4框架有很大的不同,
它由三个模块组成:

JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

JUnit5整体架构图如下:


1.1.Junit Platform

这个模块是Junit提供的平台功能模块,
不仅支持Junit自带的测试引擎,
只要实现了Junit平台引擎的接口,
任何测试框架都可以在JUnit Platform上运行,
意味着Junit5将会有着很强的拓展性。

1.2.Junit Jupiter

这个模块是Junit5的核心,
是一个基于Junit Platform引擎的实现,
它包含许多丰富的新特性来使得自动化测试更加方便和强大。

1.3.Junit Vintage

这个模块是兼容Junit3、Junit4版本的测试引擎,
使得旧版本的自动化测试也可以在Junit5下正常运行。

2.引入Pom依赖

在pom.xml引入Junit5的依赖:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.8.0</version>
    <scope>test</scope>
</dependency>

如果只使用Junit5测试框架,
只需要依赖Junit Platform和Junit Jupiter即可,
而上面的junit-jupiter已经引入了必须的依赖。

3.新建测试类

在src/test/java目录下,
新建Math的测试类MathTest,
一般测试类与被测试类包路径相同,
然后在类名后面添加Test作为测试类:
java.lang.MathTest
由于java.lang是禁止使用的包名,
所以在包路径前面添加test:
test.java.lang.MathTest

4.新建测试方法

新建测试方法testMathMinSuccess()和testMathMaxSuccess(),
用于测试Math.min()和max()的功能,
注意使用Junit5提供的注解@Test,
标识这是一个测试方法,
注解@DisplayName用于指定单元测试的名称,
否则默认使用的是单元测试方法的名称,
另外测试方法一般以test开头,
而且必须是public void的:

package test.java.lang;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

public class MathTest {
    @Test
    public void testMathMinSuccess() {
        int a = 1;
        int b = 9;
        int min = Math.min(a, b);
        Assertions.assertEquals(a, min);
    }

    @Test
    @DisplayName("测试Math的max方法")
    public void testMathMaxSuccess() {
        int a = 1;
        int b = 9;
        int max = Math.max(a, b);
        Assertions.assertEquals(b, max);
    }
}

注意用到的类都是org.junit.jupiter.api包下的。

5.断言判断结果

在上面的测试用例中,
使用Assertions断言,
判断Math.min返回的结果min,
是不是期望的最小值a:
Assert.assertEquals(a, min);
如果判断成功,则测试用例通过,
如果判断失败,则测试用例抛出异常,
表示Math.min的返回值超出预期,
可能代码功能存在问题,
需要开发介入定位问题。

Junit5使用了新的断言类:
org.junit.jupiter.api.Assertions。
相比Junit4的Assert断言类多了许多新的功能,
并且大量方法支持Java8的Lambda表达式,
注意不要把Junit5和Junit4中的类混在一起使用。

6.运行测试类

在Eclipse中运行测试类,
右键测试类MathTest -> Run As -> Junit Test,
或者使用快捷键:
Alt + Shift + X, T
MathTest单元测试执行结果如下:


如果测试类中存在多个测试方法,
上面的命令会执行所有测试方法,
如果只期望执行某个测试方法,
可以选中方法名称后,右键执行,
即可单独执行这个方法,
调试测试用例的时候很常用。

7.参考文章

JUnit 5 User Guide
Junit5 Github

上一篇 下一篇

猜你喜欢

热点阅读