springboot版本 2.6
引入依赖
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.8.1</version><scope>test</scope></dependency>
写测试类
package com.mv.modules;import com.mv.RootApplication;import org.junit.jupiter.api.Test;import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest(classes = RootApplication.class)public class MyServiceTest {@Testpublic void test() {// 测试逻辑System.out.println("-------------------");}@Test@ParameterizedTest@ValueSource(strings = {"a"})public void test01(String id) {// 测试逻辑System.out.println("-------------------" + id);}}
问题
当工程存在多个启动类时,SpringBootTest需要指定启动类
JUNIT5 常用注解
@Test:表示方法是测试方法,但与 JUnit4 的 @Test 不同,它的职责非常单一,不能声明任何属性,拓展的测试将会由 Jupiter 提供额外测试
@ParameterizedTest:表示方法是参数化测试,下文介绍
@RepeatedTest:表示方法可重复执行,下文介绍
@DisplayName:为测试类或者测试方法设置展示名称
@BeforeEach:表示在每个单元测试之前执行
@AfterEach:表示在每个单元测试之后执行
@BeforeAll:表示在所有单元测试之前执行
@AfterAll:表示在所有单元测试之后执行
@Tag:表示单元测试类别,类似于 JUnit4 中的 @Categories
@Disabled:表示测试类或测试方法不执行,类似于 JUnit4 中的 @Ignore
@Timeout:表示测试方法运行如果超过指定时间将会返回错误
@ExtendWith:为测试类或测试方法提供扩展类引用