跳转至

JUnit

JUnit5

JUnit 5

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

架构

  • 第一层 :开发人员 (这里只进行业务开发撰写单元测试) 使用 junit-jupiter-api 等测试框架 api 编写单元测试。
  • 第二层 : 测试引擎,JUnit 或其他测试框架实现引擎 API 的框架,jupiter-engine 和 vintage-engine 分别是 junit5 和 junit4 对测试引擎 API 的实现,其他的测试框架也可以通过实现引擎 API 从而接入 JUnit 平台。
  • 第三层: 平台引擎 junit-platform-engine 是上一层各种引擎实现的抽象,即引擎的接口标准。
  • 第四层: 启动器 通过 ServiceLoader 发现测试引擎的实现并安排其执行。 它为 IDE 和构建工具提供了 API,因此 IDE 可以与测试执行交互,例如,通过启动单个测试并显示其结果。
import static org.junit.jupiter.api.Assertions.fail;
import static org.junit.jupiter.api.Assumptions.assumeTrue;

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() {
    }

}