SpringBoot 从 2.4.X 开始默认使用 JUnit5 做单元测试
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
注解说明
注解 | 使用位置 | 说明 |
---|---|---|
@SpringBootTest | 标注类 | 启用 SpringBoot 作为测试核心(可以使用Spring 的功能) |
@Test | 标注方法 | 表示要测试的方法 |
@DisplayName | 标注类 | 为此测试类命名 |
@BeforeEach | 标注方法 | 在每个单元测试之前执行 |
@AfterEach | 标注方法 | 在每个单元测试之后执行 |
@BeforeAll | 标注方法 | 在所有单元测试之前执行(标注静态方法) |
@AfterAll | 标注方法 | 在所有单元测试之后执行(标注静态方法) |
@Disabled | 标注类或方法 | 禁用此类或方法 |
@Timeout | 标注方法 | 设置此方法执行超时时间 |
@RepeatedTest | 标注方法 | 重复执行次数 |
@ParameterizedTest | 标注方法 | 参数化测试 |
@ValueSource | 标注方法 | 参数化测试 提供一个包含值的入参 |
@NullSource | 标注方法 | 参数化测试 提供一个 null 的入参 |
@EnumSource | 标注方法 | 参数化测试 提供一个枚举入参 |
@CsvFileSource | 标注方法 | 参数化测试 提供一个 csv 文件入参 |
@MethodSource | 标注方法 | 参数化测试 提供一个方法的返回值入参(方法返回值必须为 Stream<T> ) |
@Tag | 标注类或方法 | 测试类别 需搭配 maven 插件使用 |
@ExtendWith | 标注类或方法 | 为测试类或方法提供扩展类引用 |
使用 @SpringBootTest @Test @DisplayName

使用 @BeforeAll 在 Spring 之前执行
使用 @BeforeEach @AfterEach 在 test 方法前后执行

使用 @AfterAll 所有方法全完成 Spring 关闭之前执行

使用 @Disabled
使用 @Timeout

使用 @RepeatedTest

使用 @ParameterizedTest
使用 @ValueSource

使用 @NullSource

使用 @EnumSource

使用 @MethodSource

使用 @Tag 此注解需搭配 maven 插件使用
<!-- 单元测试使用 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<!-- include tags -->
<groups>dev, local, prod</groups>
<!-- exclude tags -->
<excludedGroups>exclude</excludedGroups>
</configuration>
</plugin>

使用 @ExtendWith 参考 @SpringBootTest 注解源码

断言说明
方法 | 说明 |
---|---|
assertEquals | 判断两个对象或两个原始类型是否相等 |
assertNotEquals | 判断两个对象或两个原始类型是否不相等 |
assertSame | 判断两个对象引用是否指向同一个对象 |
assertNotSame | 判断两个对象引用是否指向不同的对象 |
assertTrue | 判断给定的布尔值是否为 true |
assertFalse | 判断给定的布尔值是否为 false |
assertNull | 判断给定的对象引用是否为 null |
assertNotNull | 判断给定的对象引用是否不为 null |
测试 assertEquals assertNotEquals

测试 assertSame assertNotSame

测试 assertTrue assertFalse

测试 assertNull assertNotNull

原文始发于微信公众号(狮子领域 程序圈):SpringBoot 2.X 整合 JUnit5 及全方位使用手册
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/215128.html