Junit5 详解

简述

  junit5是当前java比较流行的单元测试框架。

  junit5官网:https://junit.org/junit5/

  官方文档:https://junit.org/junit5/docs/current/user-guide/

  中文翻译版:https://doczhcn.gitbook.io/junit5/

Junit5的构成

  JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

  Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。

  JUnit Jupiter提供了JUnit5的新的编程模型,是JUnit5新特性的核心。

  JUnit Vintage: 由于JUint已经发展多年,为了照顾老的项目,JUnit Vintage提供了兼容JUnit4.x,Junit3.x的测试引擎。

导入junit5依赖

  gradle方式:

testCompile("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}")
testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}")

最简单的测试案例

  在方法上标注@Test注解,这个方法就是一个测试,测试方法内可以使用断言达到我们的测试效果

import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;

class FirstJUnit5Tests {

    @Test
    void myFirstTest() {
        assertEquals(2, 1 + 1);
    }
}

常用注解

  全部注解:https://doczhcn.gitbook.io/junit5/index/index-2/annotations

标准测试类

import static org.junit.jupiter.api.Assertions.fail;

import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

class StandardTests {

    @BeforeAll
    static void initAll() {
    }

    @BeforeEach
    void init() {
    }

    @Test
    void succeedingTest() {
    }

    @Test
    void failingTest() {
        fail("a failing test");
    }

    @Test
    @Disabled("for demonstration purposes")
    void skippedTest() {
        // not executed
    }

    @AfterEach
    void tearDown() {
    }

    @AfterAll
    static void tearDownAll() {
    }

}

断言

  断言用于比较我们期望的结果和程序实际运行的结果

References

  https://juejin.cn/search?query=junit5%E8%AF%A6%E8%A7%A3&type=0

  https://doczhcn.gitbook.io/junit5/

  https://blog.csdn.net/chenjxj123/article/details/124366094

  https://doczhcn.gitbook.io/junit5

posted @ 2022-12-23 17:40  艾尔夏尔-Layton  阅读(362)  评论(0编辑  收藏  举报