📜  JUnit-测试框架(1)

📅  最后修改于: 2023-12-03 15:17:06.736000             🧑  作者: Mango

JUnit 测试框架

介绍

JUnit 是一款 Java 编程语言中的测试框架。它使用注解标记测试方法,并可提供比 assert 更丰富的测试用例。

JUnit 是扩展了更早的 SUnit 框架的第一个单元测试框架。

JUnit 不依赖于任何 IDE 或者构建工具,但是各种 IDE 和构建工具都支持使用 JUnit 进行测试。

用法
添加到依赖

JUnit 5 是一个平台 (junit-platform),它为执行测试提供支持,而 Jupiter (junit-jupiter) 则是在 JUnit 5 平台上构建发现和执行测试的新编程模型,Vintage (junit-vintage) 还提供了执行 JUnit 3 和 JUnit 4 测试的引擎。

在 Gradle 项目中添加 JUnit 依赖:

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}

在 Maven 项目中添加 JUnit 依赖:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.7.0</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.7.0</version>
    <scope>test</scope>
</dependency>
编写测试

测试类应该与被测试的类位于同一包或子包中,并应该以 Test 作为类名的后缀。

测试方法应该使用 @Test 注解进行标记,并使用断言(如 assertEqualsassertNullassertTrue)验证测试结果。

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

public class MyTest {
    @Test
    public void testAddition() {
        int result = Math.addExact(1, 2);
        assertEquals(3, result);
    }
}
运行测试

使用 IDE 或者构建工具可以方便地运行测试。

在 Gradle 中,在控制台输入 ./gradlew test 将执行所有测试。

在 Maven 中,在控制台输入 mvn test 将执行所有测试。

JUnit 5 新功能
  • Lambda 表达式支持:可以在测试类和测试方法上使用 Lambda 表达式。
  • 条件测试:可以在运行测试之前使用条件来判断测试是否应该运行。
  • 扩展模型:JUnit 5 使用扩展机制,这允许用户在各个阶段定制 JUnit 测试。
  • 参数化测试:用一个参数化测试方法来为多个输入参数测试一段代码。
参考