参数化测试 junit

有时,您会遇到一个问题,就是尖叫使用“参数化”测试,而不是多次复制/粘贴相同的方法。 测试方法基本上是相同的,唯一改变的是传入的数据。在这种情况下,请考虑创建一个利用JUnit中的“ Parameterized ”类的测试用例。

我最近遇到了一个问题,其中我们对电子邮件地址的验证不允许unicode字符。 解决方法非常简单,更改正则表达式以允许这些字符。 接下来,该测试更改了。 我决定不对每组数据复制/粘贴单独的方法,而是决定学习Parameterized方法。 结果如下。 数据包括预期结果和要验证的电子邮件地址。

JUnit测试类

package com.mycompany.client;import static org.junit.Assert.*;import java.util.Arrays;import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;import com.mycompany.test.TestServiceUtil;/*** Parameterized test case for validating email addresses against a regular expression.* We need to allow unicode characters in the userid portion of the email address, so * these test cases where created to help validate the validateEmailAddress method* in the FieldValidationController class.* * @author mmiller**/
@RunWith(Parameterized.class)
public class TestFieldValiationController {@Parameters(name = "{index}: {1} is valid email address = {0}")public static Iterable<Object> data() {return Arrays.asList(new Object[][] { { true, "john@mycomp.com" },           { true,  "john123@mycomp.com" },{ true, "j+._%20_-brown@mycomp.com" }, { true,  "123@mycomp.com" },{ false, "john brown@mycomp.com" },    { false, "123@mycomp" },{ false, "john^brown@mycomp.com" },    { true , "1john@mycomp.com" },{ false, "john#brown@mycomp.com" },    { false, "john!brown@mycomp.com" },{ false, "john()brown@mycomp.com" },   { false, "john=brown@mycomp.com" },{ true,  "johñ.brown@mycomp.com" },    { false, "john.brown@mycomp.coñ" },{ true,  "johú@mycomp.com" },          { true,  "johíáó@mycomp.com" }});}private boolean expected;private String emailAddress;public TestFieldValiationController(boolean expected, String emailAddress) {this.expected = expected;this.emailAddress = emailAddress;TestServiceUtil.getInstance();}@Testpublic void validateEmail() {assertEquals(expected, FieldValidationController.getInstance().validateEmailAddress(emailAddress));}
}

希望这可以帮助!

参考: Scratching我的编程itch博客上的JCG合作伙伴 Mike Miller提供的参数化JUnit测试 。

翻译自: https://www.javacodegeeks.com/2014/03/parameterized-junit-tests.html

参数化测试 junit

参数化测试 junit_参数化的JUnit测试相关推荐

  1. java web junit_如何使用junit测试javaweb工程

    一:创建一个测试类,建议将测试类单独放在一个包中(在 maven 项目里有测试类专门的存放位置),新建一个Junit Test Case类,下一步  测试类的命名建议是你将要测试的类名+Test,然后 ...

  2. 测试学习java_使用Junit测试框架学习Java

    前言 在日常的开发中,离不开单元测试,而且在学习Java时,特别是在测试不同API使用时要不停的写main方法,显得很繁琐,所以这里介绍使用Junit学习Java的方法.此外,我使用log4j将结果输 ...

  3. Junit测试JAVA文件,java – Junit测试模拟文件操作

    我有一段类似于下面的代码,我被要求进行Junit测试.我们正在使用Junit,EasyMock和Spring Framework.我没有做过多少Junit测试,而且我对如何模拟下面的内容感到有点迷茫. ...

  4. junit 测试mvc_Spring MVC控制器JUnit测试

    junit 测试mvc JUnit测试Spring MVC控制器并非易事 . 但是最近,一个新项目 (即将在Spring推出)提供了新的工具来简化此工作. 这篇文章说明了如何通过JUnit测试来测试一 ...

  5. 【sprinb-boot】Junit测试

    前言 springboot 2.0.0.RELEASE maven 3.5.0 参考:https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/ref ...

  6. junit测试类叫什么名字_使用Junit测试名称

    junit测试类叫什么名字 命名测试 当我们创建Junit测试时,通常没有方法名称的实际使用. Junit运行器使用反射来发现测试方法,并且从版本4开始,您不再被限制以test开始方法的名称. 测试方 ...

  7. SpringBoot整合Junit测试

    文章目录 SpringBoot整合Junit测试 1.SpringBoot引入springboot的测试依赖 2.生成测试方法 3.测试结果 SpringBoot整合Junit测试 假设已对mybat ...

  8. SpringBoot中使用Junit测试

    文章目录 SpringBoot整合Junit测试 目录 1.SpringBoot引入springboot的测试依赖 2.生成测试方法 3.测试结果 SpringBoot整合Junit测试 假设已对my ...

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

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

最新文章

  1. [每日短篇] 1D - 消除 if 的一种方法
  2. Azure 物联网开发者体验 7 月更新:边缘计算开发工具,ARM64 设备开发,VS Code 容器化开发工具...
  3. dynamodb java_使用Java将项目插入DynamoDB表
  4. 有些垃圾网站转载都不会
  5. 面对10ms的延迟,这群人就是一个字“改”
  6. OpenCV——高效遍历图像(C++版本)
  7. 关于OCR,做个记录。
  8. iOS开发笔记 基于wsdl2objc调用asp.net WebService
  9. LAMP兄弟连PHP高薪就业班2012召集令
  10. 学习通视频enc生成方法
  11. Unity3D-敌人巡逻和拉脱
  12. 刚闪电入门了树莓派:斩获不止Python,Linux,goLang,还有架构,格局...
  13. Android studio制作计算器源代码
  14. 网络通信专题总结之OTA专题
  15. 易购数码类电商商城网页设计与实现项目源码
  16. 拼多多开店怎么提高点击率?天创速盈提出应对措施
  17. 票据二维码中信息获取处理与分析系统 毕业设计
  18. 利用免费代理ip网站建立自己IP数据库
  19. 大型商业进销存系统源码
  20. 微波网络散射参数测量

热门文章

  1. 【矩阵乘法】递推(ssl 1532)
  2. 【DP】滑雪场的缆车(jzoj 1257)
  3. Full_of_Boys训练2总结
  4. 汇编语言(三十四)之输出中文
  5. DevOps面试问题
  6. 程序员如何写简历?来自硅谷的八条建议
  7. MyEclipse web项目导入Eclipse,详细说明
  8. Java制作VCARD
  9. Java Socket编程----通信是这样炼成的
  10. (二)利用Java WebService调用天气预报实践