Junit5 系列索引

junit5 入门系列教程-01-junit5 简单入门例子

junit5 入门系列教程-02-junit5 注解详解

junit5 入门系列教程-03-junit5 测试类和方法 {@Test、@RepeatedTest、@ParameterizedTest、@TestFactory或@TestTemplate}

junit5 入门系列教程-04-junit5 展现名称(@DisplayName)

junit5 入门系列教程-05-junit5 断言(assert)

junit5 入门系列教程-06-junit5 假设(Assumptions)

junit5 入门系列教程-07-junit5 禁用(@Disabled)

junit5 入门系列教程-08-junit5 条件执行(@EnabledXXX, @DisabledXXX)

junit5 入门系列教程-09-junit5 标签和过滤(@Tag)

junit5 入门系列教程-10-junit5 测试实例生命周期(@TestInstance)

junit5 入门系列教程-11-junit5 内嵌测试(@Nested)

junit5 入门系列教程-12-junit5 依赖注入构造器、方法

junit5 入门系列教程-13-junit5 测试接口及默认方法

junit5 入门系列教程-14-junit5 重复测试(@RepeatedTest)

junit5 入门系列教程-15-junit5 参数化测试(@ParameterizedTest)

junit5 入门系列教程-16-junit5 测试模板(@TestTemplate)

junit5 入门系列教程-17-junit5 动态测试(DynamicTest)

junit5 入门系列教程-18-junit5 拓展模块-总览(Extend Model)

junit5 入门系列教程-19-junit5 拓展实体-注册(Register Extension)

junit5 入门系列教程-20-junit5 拓展实体-条件测试

junit5 入门系列教程-21-junit5 拓展实体-测试实例后处理(Instance Post-processing)

junit5 入门系列教程-22-junit5 拓展实体-参数化测试解决方案(Parameter Resolution)

junit5 入门系列教程-23-junit5 拓展实体-异常处理器(Exception Handle)

junit5 入门系列教程-24-junit5 拓展实体-测试上下文(Test Context)

junit5 入门系列教程-25-junit5 拓展实体-存储状态(Keeping State in Extensions)

junit5 入门系列教程-26-junit5 拓展实体-工具类

junit5 入门系列教程-27-junit5 拓展实体-用户代码和扩展的相对执行顺序

junit5 入门系列教程-28-junit5 拓展实体-测试生命周期回调

junit5 入门系列教程-29-junit5 拓展实体-Junit 平台启动器API(JUnit Platform Launcher API)

junit5 入门系列教程-30-junit5 实战例子 junit performance

目录

Junit5

JUnit5 is the next generation of JUnit.

目标是为JVM上的开发人员端测试创建一个最新的基础。这包括关注Java 8和以上版本,以及支持多种不同的测试风格。

JUnit 5是JUnit Lambda和它在Indiegogo上的众筹活动的结果。

简介

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
  • JUnit Platform

JUnit Platform 作为在JVM上启动测试框架的基础。
它还定义了TestEngine API,用于开发在平台上运行的测试框架。
此外,该平台提供了一个控制台启动器,用于从命令行启动平台,并为Gradle和Maven构建插件,以及一个基于JUnit 4的运行器,用于在平台上运行任何TestEngine。

  • JUnit Jupiter

JUnit Jupiter 是新的编程模型和扩展模型的组合,用于在JUnit 5中编写测试和扩展。
Jupiter子项目为运行基于平台的测试提供了一个测试引擎。

  • JUnit Vintage

JUnit Vintage 为在平台上运行基于JUnit 3和JUnit 4的测试提供了一个测试引擎。

JDK 支持

JUnit 5在运行时要求Java 8(或更高)。但是,您仍然可以测试使用JDK的以前版本编译的代码

快速开始

Maven 导入

<dependencies>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>1.2.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.2.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>5.2.0</version>
        <scope>test</scope>
    </dependency>
</dependencies>

测试案例

  • FirstJUnit5Tests.java
import org.junit.jupiter.api.Test;

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

public class FirstJUnit5Tests {

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

}

变化

  • 导入的包路径和原来不同

  • 方法不必再声明为 public

代码地址

FirstJUnit5Tests

文档参考

user-guide

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐