password
查看人数
type
status
date
slug
summary
category
icon
tags
作者
状态
JUnit 5 的测试执行顺序
JUnit 是 Java 世界中最流行的测试框架,现在最新版本是 JUnit 5。在 JUnit 5 中,测试类和测试方法都可以使用注解来标注和配置。这些注解也定义了 JUnit 5 的测试执行顺序。
JUnit 5 的测试执行顺序为:
- @BeforeAll - 表示在所有测试方法之前执行。这通常用于初始化较昂贵的资源,如数据库连接。
- @BeforeEach - 表示在每个测试方法之前执行。这通常用于初始化比较便宜的资源,如测试用例级别的依赖项。
- @Test - 表示一个测试方法。如果有多个 @Test 方法,则执行顺序按方法名称的字母序执行。
- @AfterEach - 表示在每个测试方法之后执行。这通常用于释放 @BeforeEach 中初始化的资源。
- @AfterAll - 表示在所有测试方法之后执行。这通常用于释放 @BeforeAll 中初始化的资源。

BeforeAll→BeforeEach→Order→name→name相同看参数数量→AfterEach→AfterAll
junit5 实现参数化运行
当我们测试某些方法时,这些方法具有多种条件或需要不同参数以实现不同的结果。按照传统的写法,为了测试这些条件和参数,我们可能需要编写多个test方法,从而导致大量冗余代码。这些测试方法的代码基本相同,只是需要更改测试参数。通过参数化,我们可以大大简化这种情况。通过使用参数化测试,我们可以轻松地使用不同的参数运行相同的测试方法,从而减少代码的冗余并提高代码的可读性和可维护性。
同事XX说为啥不用循环?用这些有什么用?
回答:如果用循环中间有一个断言失败或者报错就会停止执行。
需要导入 junit-jupiter-params jar包。
代码示例
比例需要测试toUpperCase 方法,把字符转换为大写的,按照常规的方法用不同的数据去测试,就是需要写多个test
但是用了参数化之后,就只需要写一个test的方法,就可以了
输入数据:input
预期结果:expected
执行结果

以下是一些常见的数据来源注解:
- @ValueSource: 提供单一参数值的注解。可以用于基本数据类型,字符串和枚举。
- @EnumSource: 用于测试枚举类型。可以提供一个枚举类,测试方法将使用该枚举中的所有值。
- @MethodSource: 允许你指定一个方法作为参数源。该方法应返回一个Stream、Iterable、Iterator或者数组。
- @CsvSource: 使用逗号分隔的值作为参数源。可以在一个注解中提供多个参数集。
- @CsvFileSource: 从CSV文件读取参数。
这些是JUnit Jupiter 中一些常用的参数化测试来源注解。你可以根据你的测试需求选择适当的来源注解。
- 作者:躁静有徒
- 链接:https://blog.zaojingyoutu.top//article/03626a6f-987c-d566-0d9b-d1a6d2eb41e1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章