使用
常用注解
| Annotation | Description |
|---|---|
@Test | 标记为测试方法 |
@ParameterizedTest | 标记为参数化测试 |
@RepeatedTest | 多次执行 |
@TestFactory | 动态创建 Test。方法需返回DynamicNode |
@TestClassOrder | 有多个嵌套测试类,标记需要排序。 |
@TestMethodOrder | 有多个嵌套测试方法,标记需要排序 |
@DisplayName | 定义该测试名称 |
@DisplayNameGeneration | 指定测试名称生成类 |
@BeforeEach | 在标记@Test, @RepeatedTest, @ParameterizedTest, @TestFactory 的方法执行前执行 |
@AfterEach | 在标记@Test, @RepeatedTest, @ParameterizedTest, @TestFactory 的方法执行后执行 |
@BeforeAll | 在所有测试方法执行前执行 |
@AfterAll | 在所有测试方法执行后执行 |
@Nested | 标记为嵌套测试 |
@Tag | 打个标记,再使用插件是可以过滤。 |
@Disabled | 忽略该测试 |
@Timeout | 指定超时时间 |
@TempDir | 临时目录 |
@Order | 执行顺序 |
断言
- Equals
- 断言是否相等
assertEquals,assertArrayEquals,assertNotEquals
- 断言是否相等
- Boolean
- 断言 Boolean 类型
assertFalse,assertTrue
- 断言 Boolean 类型
- Throw
- 判断是否有异常
assertDoesNotThrow,assertThrows assertThrowsExactly判断完全异常是否完全相等
- 判断是否有异常
- Timeout
- 是否超时
assertTimeout(超时不会中断) assertTimeoutPreemptively超时时会中断
- 是否超时
Conditional
@EnabledOnOs,根据操作系统判断@EnabledForJreRange,@EnabledOnJre,@DisabledForJreRange,@DisabledOnJre根据Java运行环境@DisabledInNativeImage,@DisabledInNativeImage判断是否在GraalVM中@EnabledIfSystemProperty,@DisabledIfSystemProperty根据系统参数判断@EnabledIfEnvironmentVariable,@DisabledIfEnvironmentVariable根据环境变量判断
参数测试
使用不同的参数进行测试,使用
@ParameterizedTest标记。
@NullSourcenull对象,不能对基础数据类型使用@EmptySource一个空值@NullAndEmptySource包含@NullSource,@EmptySource@ValueSource一组参数@EnumSource一组枚举@MethodSource自定义方法返回参数,但是需要限定返回对象为- java.util.stream.Stream
- java.util.stream.DoubleStream
- java.util.stream.LongStream
- java.util.stream.IntStream
- java.util.Collection
- java.util.Iterator
- java.lang.Iterable
- org.junit.jupiter.params.provider.Arguments
- String[]
@CsvSource使用 csv 格式的测试数据@CsvFileSource使用 csv 格式的测试数据
参数配置
配置方式
- 通过构建工具的插件配置参数
- 通过
JVM system properties junit-platform.properties文件