注意:

SpringBoot 2.4 以上版本移除了默认对 JUnit4.x 的依赖.如果需要兼容 JUnit4.x 版本,需要自行引入(默认使用JUnit5.X)

既然用到了JUnit那就简单说下他的历史:

JUnit 起源于 1997年,最初版本是由两位编程大师 Kent Beck 和 Erich Gamma 的一次飞机之旅上完成的,由于当时 Java 测试过程中缺乏成熟的工具,两人在飞机上就合作设计实现了 JUnit 雏形,旨在成为更好用的 Java 测试框架。如今二十多年过去了,JUnit 经过各个版本迭代演进,已经发展到了 5.x 版本,为 JDK 8以及更高的版本上提供更好的支持 (如支持 Lambda ) 和更丰富的测试形式 (如重复测试,参数化测试)。

JUnit5.X部分注解解释

@BeforeEach:在每个单元测试方法执行前都执行一遍

@BeforeAll:在每个单元测试方法执行前执行一遍(只执行一次)

@DisplayName("修改别名"):用于修改测试类或测试方法的名称

@RepeatedTest(n):重复性测试,即执行n次 就不需要使用@Test

@ParameterizedTest:参数化测试,需搭配@ValueSource使用,就不需要使用@Test

@ValueSource(ints = {1, 2, 3}):参数化测试提供数据,需搭配@ParameterizedTest使用

下边都会使用并展示运行结果

开始操作:

pom.xml导入依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

定位到要测试的类 Ctrl+Shift+T 创建测试类

勾选要测试的方法

#yyds干货盘点# IntelliJ IDEA中SpringBoot2.4 做单元测试_JUnit

测试类代码如下:

package com.test.demotest.contoller;

import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import org.springframework.boot.test.context.SpringBootTest;

/**
* @Author: yipeng.liu
* @Date: 2022/2/18 16:26
* @Description: CallbackControllerTest
*/
@SpringBootTest
class CallbackControllerTest {

@BeforeEach
public void beforeEach() {
System.out.println("执行 beforeEach");
}

@BeforeAll
public static void beforeAll() {
System.out.println("执行 beforeAll");
}

@DisplayName("修改别名1")
@RepeatedTest(2)
public void alarmCallback() {
System.out.println("Hello Test1!");
}

@Test
@DisplayName("修改别名2")
public void test2() {
System.out.println("Hello Test2!");
}


@ParameterizedTest
@ValueSource(strings = {"a","b","c"})
public void test3(String str) {
System.out.println(str);
}

}

运行结果截图:

#yyds干货盘点# IntelliJ IDEA中SpringBoot2.4 做单元测试_JUnit_02