注意:
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 创建测试类
勾选要测试的方法
测试类代码如下:
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
*/
class CallbackControllerTest {
public void beforeEach() {
System.out.println("执行 beforeEach");
}
public static void beforeAll() {
System.out.println("执行 beforeAll");
}
("修改别名1")
(2)
public void alarmCallback() {
System.out.println("Hello Test1!");
}
("修改别名2")
public void test2() {
System.out.println("Hello Test2!");
}
(strings = {"a","b","c"})
public void test3(String str) {
System.out.println(str);
}
}
运行结果截图: