junit 5 - Display Name 展示名称
本文地址:https://www.cnblogs.com/hchengmx/p/14883563.html
@DisplayName可以给 测试类 或者 测试方法来自定义显示的名称。可以支持 空格、特殊字符,甚至是 emoji。
1. @DisplayName
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@DisplayName("A special test case")
public class DisplayNameTest {
@Test
@DisplayName("Custom test name containing spaces")
void testWithDisplayNameContainingSpaces() {
}
@Test
@DisplayName("╯°□°)╯")
void testWithDisplayNameContainingSpecialCharacters() {
}
@Test
@DisplayName("")
void testWithDisplayNameContainingEmoji() {
}
}
output
2. @DisplayNameGenerator
DisplayNameGenerator 是一个接口,里面有三个方法。
String generateDisplayNameForClass(Class testClass);
String generateDisplayNameForNestedClass(Class nestedClass);
String generateDisplayNameForMethod(Class<?> testClass, Method testMethod);
| DisplayNameGenerator | Behavior | Example |
|---|---|---|
| Standard | 默认的,没什么变化 | test_display_ok() -> test_display_ok() |
| Simple | 针对没有参数的方法,去除掉尾部的括号 | test_display_ok() -> test_display_ok |
| ReplaceUnderscores | 把下划线 ‘_’ 替换成空格 | test_display_ok() -> test display ok |
| IndicativeSentences | class + method name | test_diaplay_ok() -> DisplayNameGeneratorTest , test_diaplay_ok() |
@DisplayNameGeneration(DisplayNameGenerator.IndicativeSentences.class)
public class DisplayNameGeneratorTest {
@Test
public void test_display_ok(){
}
}
output
3. Parameterized Tests
对于 可参数化的测试,我们可以用 ParameterizedTest 来自定义设置 DisplayName,这种时候就不需要用 DisplayName或者 DisplayNameGenerator
package com.hchengmx.display;
import static org.junit.jupiter.params.provider.Arguments.arguments;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
public class DisplayNameParamTest {
@ParameterizedTest(name = "#{index} - Test with {0} and {1}")
@MethodSource("argumentProvider")
void test_method_multi(String str, int length) {
}
static Stream<Arguments> argumentProvider() {
return Stream.of(
arguments("abc", 3),
arguments("lemon", 2)
);
}
}
4. Custom DisplayNameGenerator
我们也可以 继承JUnit 的 DisplayNameGenerator 来实现自定义。比如,我们不想用DisplayName注解了,觉得这个不太直观,自定义了一个 TestCaseName的注解,用来标明Test Case的名称。
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestCaseName {
String value();
}
import com.hchengmx.annotation.TestCaseName;
import java.lang.reflect.Method;
import org.junit.jupiter.api.DisplayNameGenerator;
public class CustomDisplayNameGenerator extends DisplayNameGenerator.Standard {
@Override
public String generateDisplayNameForClass(Class<?> testClass) {
return "New Name for test class";
}
@Override
public String generateDisplayNameForNestedClass(Class<?> nestedClass) {
return super.generateDisplayNameForNestedClass(nestedClass);
}
@Override
public String generateDisplayNameForMethod(Class<?> testClass, Method testMethod) {
if (testMethod.isAnnotationPresent(TestCaseName.class)) {
return testMethod.getAnnotation(TestCaseName.class).value();
}
return super.generateDisplayNameForMethod(testClass, testMethod);
}
}
source code
https://gitee.com/hchengmx/junit5-samples/tree/master/src/test/java/com/hchengmx/display
參考:
junit 5 - Display Name 展示名称的更多相关文章
- 创建几个常用table展示方式插件
这次和大家分享的是自己写的一个table常用几种展示格式的js插件取名为(table-shenniu),样式使用的是bootstrap.min.css,还需要引用jquery.min.js包,这个插件 ...
- Java单元测试之JUnit 5快速上手
前言 单元测试是软件开发中必不可少的一环,但是在平常开发中往往因为项目周期紧,工作量大而被选择忽略,这样往往导致软件问题层出不穷.线上出现的不少问题其实在有单元测试的情况下就可以及时发现和处理,因此培 ...
- 1.如何在JMeter中使用JUnit
您是否需要在测试过程中使用JUnit? 要回答这个问题,我们先来看看单元测试. 单元测试是软件测试生命周期中测试的最低分辨率. 运行单元测试时,需要在应用程序中使用最小的可测试功能,将其与其他代码隔离 ...
- Salesforce LWC学习(十八) datatable展示 image
本篇参看: https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentati ...
- 从PowerDesigner表字段的Name到EF实体类属性的Display Name(根据PowerDesigner生成EF实体类中文注释和验证元数据)
第一步:将PowerDesigner表字段的中文Name填入Comment中:工具-Execute Commands-Edit/Run Script... '********************* ...
- Junit使用教程 转
几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白. 知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用.为了从此不再菜鸟,特此总结整理了下Junit ...
- Junit使用教程(一)
几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白. 知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用.为了从此不再菜鸟,特此总结整理了下Junit ...
- 【Ztree】前台展示多级菜单,后台配置方法
第一步.前台HTML页面. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" ...
- JUnit 两日游
从一个简单的Junit demo到一个用户名与密码的验证 学习Junit,首先肯定是要环境的搭建与配置. 第一步,安装JDK,配置环境变量 第二步,安装eclipse.OS X环境下,eclipse并 ...
随机推荐
- Taro开发微信小程序遇到的问题和解决方法
1.scroll-view 置顶, 给设置scroll-top为0无效问题? 解决方案: 不触发置顶问题,需要给scroll-top一个设置接近0的随机数,Math.random() 2.scroll ...
- vue项目处理dpr和多屏幕适配问题
<!DOCTYPE html> <html style="font-size:37.5px"> <head> <meta charset= ...
- Hadoop-集群运行
目录 步骤一.NameNode 格式化 步骤二.启动 NameNode 步骤三.启动 SecondaryNameNode 步骤四.slave 启动 DataNode 步骤五.查看 HDFS 的报告 步 ...
- Linux---远程连接、命令行基础、文件及目录管理
远程连接管理Linux实践(centos) 连接小知识 IP地址:访问连接服务器,需要通过服务器的IP地址来实现,服务器的IP地址就相当于服务器的具体地址.一计算机都会有一个唯一的32位的IP地址,8 ...
- oracle查看impdp进度
当数据量比较大的时候,当你导入,导出的时候,在数据库中查看运行的情况,可以利用下面的视图查看: //这里由于导表空间时出现问题,所以再次执行导入任务.但是已有任务在执行,查看执行中的任务方法. ora ...
- keytools命令生成证书
平时开发中可以使用keytools命令生成证书,一般常用格式为: keytool -genkey -alias tzzxxt -keyalg RSA -keypass 123456 -validity ...
- msyql查看版本号、最大连接数、当前连接数等
1.查看版本号 select version(); 2.查看最大连接数 show variables like 'max_connections'; 3.查看当前连接数(如果是root帐号,你能看到所 ...
- 学习HTML第二天
今日内容: HTML标签:表单标签 CSS HTML标签:表单标签 表单项标签: input:可以通过type属性值,改变元素展示的样式 type属性: text:文本输入框,默认值 placehol ...
- Educational Codeforces Round 121 (Rated for Div. 2)——A - Equidistant Letters
A - Equidistant Letters 题源:https://codeforces.com/contest/1626/problem/A 今天上午VP了这场CF,很遗憾的是一道题也没写出来,原 ...
- 最新MATLAB R2021b超详细安装教程(附完整安装文件)
摘要:本文详细介绍Matlab R2021b的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用. ...