ceshiren.com
霍格沃兹测试学社
package com.hogwarts.JUnit5;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class DisplayNameTest {
// 通过DisplayName注解定义
@DisplayName("第一条用例")
@Test
void FirstCase(){
System.out.println("第一条用例");
}
@DisplayName("第二条用例")
@Test
void SecondCase(){
System.out.println("第二条用例");
}
}
@DisplayNameGenerator
实现生成器。生成器配置 | 含义 | 案例 |
---|---|---|
Standard | 默认配置 | hogwarts_test() -> hogwarts_test() |
Simple | 删除没有参数的方法的尾括号。 | hogwarts_test() -> hogwarts_test |
ReplaceUnderscores | 用空格替换下划线。 | hogwarts_test() -> hogwarts test() |
IndicativeSentences | 使用类名,方法名。 | 类名,hogwarts_test() |
package com.hogwarts.JUnit5;
import org.junit.jupiter.api.DisplayNameGeneration;
import org.junit.jupiter.api.DisplayNameGenerator;
import org.junit.jupiter.api.Test;
// 默认配置,不会有变化
@DisplayNameGeneration(DisplayNameGenerator.Standard.class)
public class DisplayNameTest {
@Test
void First_Case(){
System.out.println("第一条用例");
}
@Test
void Second_Case(){
System.out.println("第二条用例");
}
}
package com.hogwarts.JUnit5;
import org.junit.jupiter.api.DisplayNameGeneration;
import org.junit.jupiter.api.DisplayNameGenerator;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
// 删除没有参数的方法的括号
@DisplayNameGeneration(DisplayNameGenerator.Simple.class)
public class DisplayNameTest {
@Test
void First_Case(){
System.out.println("第一条用例");
}
//参数化操作
@ParameterizedTest()
@ValueSource(strings = { "霍格沃兹测试开发" })
void Second_Case(String name){
System.out.println(name);
System.out.println("第二条用例");
}
}
package com.hogwarts.JUnit5;
import org.junit.jupiter.api.DisplayNameGeneration;
import org.junit.jupiter.api.DisplayNameGenerator;
import org.junit.jupiter.api.Test;
// 下划线 ‘_’ 替换成空格
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class)
public class DisplayNameTest {
@Test
void First_Case(){
System.out.println("第一条用例");
}
@Test
void Second_Case(){
System.out.println("第二条用例");
}
}
package com.hogwarts.JUnit5;
import org.junit.jupiter.api.DisplayNameGeneration;
import org.junit.jupiter.api.DisplayNameGenerator;
import org.junit.jupiter.api.Test;
// 将类名和方法名拼接展示
@DisplayNameGeneration(DisplayNameGenerator.IndicativeSentences.class)
public class DisplayNameTest {
@Test
void First_Case(){
System.out.println("第一条用例");
}
@Test
void Second_Case(){
System.out.println("第二条用例");
}
}
问题:每一个类都需要添加配置信息,如果所有的测试类都添加,会有很多冗余代码
解决方案:利用属性文件junit-platform.properties
全局配置
src/test/resources/junit-platform.properties
中添加配置文件。# 全局配置Display name 为连接类名与方法名
junit.jupiter.displayname.generator.default = \
org.junit.jupiter.api.DisplayNameGenerator$IndicativeSentences
优先级 | 配置内容 |
---|---|
第一 | 注解@DisplayName |
第二 | 注解@DisplayNameGeneration |
第三 | 配置文件中配置DisplayNameGenerator |
第四 | 使用默认配置org.junit.jupiter.api.DisplayNameGenerator.Standard |