几年前,我写了有关JUnit参数化测试的文章 。 我不喜欢它们的一件事是JUnit使用数字命名了单个测试用例,因此,如果它们失败,您将不知道是哪个测试参数导致了失败。 以下Eclipse屏幕快照将向您展示我的意思:

但是,在JUnit 4.11中, @Parameters批注现在带有一个name变量,可用于在测试名称中显示参数,从而使它们更具描述性。 您可以在此参数中使用以下占位符,它们将在运行时由JUnit替换为实际值:

  • {index} :当前参数索引
  • {0}{1} ,…:第一个,第二个,依此类推,参数值

这是一个例子:

import static org.junit.Assert.assertEquals;import java.util.Arrays;
import java.util.Collection;import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;@RunWith(Parameterized.class)
public class StringSortTest {@Parameters(name = "{index}: sort[{0}]={1}")public static Collection<Object[]> data() {return Arrays.asList(new Object[][] {{ "abc", "abc"},{ "cba", "abc"},{ "abcddcba", "aabbccdd"},{ "a", "a"},{ "aaa", "aaa"},{ "", ""}});}private final String input;private final String expected;public StringSortTest(final String input, final String expected){this.input = input;this.expected = expected;}@Testpublic void testSort(){assertEquals(expected, sort(input));}private static String sort(final String s) {final char[] charArray = s.toCharArray();Arrays.sort(charArray);return new String(charArray);}
}

运行测试时,您将看到单独的测试用例,如下面的Eclipse屏幕快照所示,因此很容易识别每个测试用例中使用的参数。

请注意,由于Eclipse中的错误 ,包含括号的名称将被截断。 这就是为什么我必须使用sort[{0}]而不是sort({0})

参考: JUnit:在我们的JCG合作伙伴 Fahd Shariff的fahd.blog博客中为参数化测试中的各个测试用例命名 。

翻译自: https://www.javacodegeeks.com/2013/04/junit-naming-individual-test-cases-in-a-parameterized-test.html

JUnit:在参数化测试中命名单个测试用例相关推荐

  1. junit 参数化测试用例_JUnit:在参数化测试中命名单个测试用例

    junit 参数化测试用例 几年前,我写了有关JUnit参数化测试的文章 . 我不喜欢它们的一件事是JUnit使用数字命名了单个测试用例,因此,如果它们失败,您将不知道是哪个测试参数导致了失败. 以下 ...

  2. JUnit 5 –参数化测试

    JUnit 5令人印象深刻,尤其是当您深入研究扩展模型和体系结构时 . 但是从表面上讲,编写测试的地方,开发的过程比革命的过程更具进化性 – JUnit 4上没有杀手级功能吗? 幸运的是,至少有一个: ...

  3. 单元测试之JUnit 5 参数化测试使用手册

    1. 概要 junit5是下一代JUnit测试框架,新增了很多特性帮助开发人员更好得编写测试用例.其中一大特性就是参数化测试,其目的就是让我们可以使用不同的参数多次执行一个测试方法,从而覆盖不同的条件 ...

  4. junit 单元测试 - 参数化测试

    junit4.x版本需要引入如下jar包: hamcrest-core-1.3.jar junit-4.12-beta-3.jar 新建一个计算器类,如下: package com.pt;public ...

  5. [转]Web测试中的界面测试用例设计

    一.文本框.按钮等控件测试 1.文本框的测试 如何对文本框进行测试: a.输入正常的字母或数字: b.输入已存在的文件的名称: c.输入超长字符.例如在"名称"框中输入超过允许边界 ...

  6. 参数化测试 junit_使用JUnit 5进行更清洁的参数化测试

    参数化测试 junit 参数化单元测试的总体思路是对不同的数据运行相同的测试方法. 在JUnit 4中创建参数化测试远非完美. 现有体系结构存在许多问题:将参数定义为类字段,并需要使用构造函数来创建它 ...

  7. 使用JUnit 5进行更清洁的参数化测试

    参数化单元测试的总体思路是对不同的数据运行相同的测试方法. 在JUnit 4中创建参数化测试远非完美. 现有体系结构存在许多问题:将参数定义为类字段,并且需要使用构造函数来创建它们,不能将参数化和非参 ...

  8. 关于测试中常用到的一些方法、策略总结

    一些常用模块的测试用例 1.登录 2.添加 3.查询 4.删除 1.登录 ①用户名和密码都符合要求(格式上的要求) ②用户名和密码都不符合要求(格式上的要求) ③用户名符合要求,密码不符合要求(格式上 ...

  9. 【Java单元测试】如何进行单元测试、异常测试、参数化测试、超时测试、测试多线程

    Junit单元测试的步骤 (1)新建一个单元测试 (2)选择位置 (3)选择需要测试的方法 (4)是否将Junit 4添加到ClassPath中 (5)自动生成的测试类 (6) 然后就可以编写单元测试 ...

最新文章

  1. 今晚直播 | AAAI 2022论文解读:重新思考图像融合策略和自监督对比学习
  2. matlab能控型模型,级倒立摆MATLAB仿真、能控能观性分析、数学模型、极点配置
  3. C++:new 和 delete
  4. 高并发系统—通用设计方法
  5. 设计模式原则总结--读《大话设计模式》有感 转
  6. django21:admin后台管理\media配置\图片防盗链\暴露后端资源\路由分发\时间分类
  7. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第10篇]RSA和强RSA问题有什么区别
  8. Java事务管理之JDBC
  9. 工作了五年的公司,拖欠员工报酬,该起诉吗?
  10. java写html的多选框,Selenium+java - 单选框及复选框处理
  11. 目标检测工具安装使用--labelImg
  12. 教你实现一个 iOS 重签名工具
  13. 小米8装magisk
  14. 黑苹果安装经验整理|再见丁小果
  15. C语言初学者必学必会的C语言必背100代码
  16. wps如何调节行间距?
  17. ng-template、ng-container、ng-content 的用法
  18. scala函数式变程,curry,读取文件,字符串插值,隐式转换,模式匹配
  19. 2023年EasyRecovery数据恢复还会收费吗?
  20. PHP知识一:系统知识总结

热门文章

  1. python递归算法_python递归算法(上)
  2. ibatis(2)ibatis是什么
  3. tomcat(7)日志记录器
  4. ISO语言代码和国家代码+Locale常量+ISO货币符号
  5. java线程——阻塞队列
  6. JDK7的日期时间类
  7. c++ 前缀 变量命名_前缀命名
  8. aws lambda使用_使用AWS Lambda,S3和AWS CloudFront进行动态内容缓存
  9. swarm 本地管理远程_带有WildFly Swarm的远程JMS
  10. javafx 示例_示例介绍:JavaFX 8打印