void if_it_is_zero() {
}
}
- 执行结果如下图,方法if_it_is_zero展示出的名字为if it is zero:
- 在上述替换方式的基础上,JUnit5还提供了另一种生成展示名称的方法:测试类名+连接符+测试方法名,并且类名和方法名的下划线都会被替换成空格,演示代码如下,使用了注解@IndicativeSentencesGeneration,其separator属性就是类名和方法名之间的连接符:
package com.bolingcavalry.advanced.service.impl;
import org.junit.jupiter.api.DisplayNameGenerator;
import org.junit.jupiter.api.IndicativeSentencesGeneration;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
@IndicativeSentencesGeneration(separator = “,测试方法:”, generator = DisplayNameGenerator.ReplaceUnderscores.class)
public class IndicativeSentences_Test {
@Test
void if_it_is_one_of_the_following_years() {
}
}
- 执行结果如下:
重复测试(Repeated Tests)
- 重复测试就是指定某个测试方法反复执行多次,演示代码如下,可见@Test已被@RepeatedTest(5)取代,数字5表示重复执行5次:
@Order(1)
@DisplayName(“重复测试”)
@RepeatedTest(5)
void repeatTest(TestInfo testInfo) {
log.info(“测试方法 [{}]”, testInfo.getTestMethod().get().getName());
}
- 执行结果如下图:
- 在测试方法执行时,如果想了解当前是第几次执行,以及总共有多少次,只要给测试方法增加RepetitionInfo类型的入参即可,演示代码如下,可见RepetitionInfo提供的API可以得到总数和当前次数:
@Order(2)
@DisplayName(“重复测试,从入参获取执行情况”)
@RepeatedTest(5)
void repeatWithParamTest(TestInfo testInfo, RepetitionInfo repetitionInfo) {
log.info(“测试方法 [{}],当前第[{}]次,共[{}]次”,
testInfo.getTestMethod().get().getName(),
repetitionInfo.getCurrentRepetition(),
repetitionInfo.getTotalRepetitions());
}
- 上述代码执行结果如下: