参数化测试 junit_参数化的JUnit测试
参数化测试 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));}
}
希望这可以帮助!
翻译自: https://www.javacodegeeks.com/2014/03/parameterized-junit-tests.html
参数化测试 junit
参数化测试 junit_参数化的JUnit测试相关推荐
- java web junit_如何使用junit测试javaweb工程
一:创建一个测试类,建议将测试类单独放在一个包中(在 maven 项目里有测试类专门的存放位置),新建一个Junit Test Case类,下一步 测试类的命名建议是你将要测试的类名+Test,然后 ...
- 测试学习java_使用Junit测试框架学习Java
前言 在日常的开发中,离不开单元测试,而且在学习Java时,特别是在测试不同API使用时要不停的写main方法,显得很繁琐,所以这里介绍使用Junit学习Java的方法.此外,我使用log4j将结果输 ...
- Junit测试JAVA文件,java – Junit测试模拟文件操作
我有一段类似于下面的代码,我被要求进行Junit测试.我们正在使用Junit,EasyMock和Spring Framework.我没有做过多少Junit测试,而且我对如何模拟下面的内容感到有点迷茫. ...
- junit 测试mvc_Spring MVC控制器JUnit测试
junit 测试mvc JUnit测试Spring MVC控制器并非易事 . 但是最近,一个新项目 (即将在Spring推出)提供了新的工具来简化此工作. 这篇文章说明了如何通过JUnit测试来测试一 ...
- 【sprinb-boot】Junit测试
前言 springboot 2.0.0.RELEASE maven 3.5.0 参考:https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/ref ...
- junit测试类叫什么名字_使用Junit测试名称
junit测试类叫什么名字 命名测试 当我们创建Junit测试时,通常没有方法名称的实际使用. Junit运行器使用反射来发现测试方法,并且从版本4开始,您不再被限制以test开始方法的名称. 测试方 ...
- SpringBoot整合Junit测试
文章目录 SpringBoot整合Junit测试 1.SpringBoot引入springboot的测试依赖 2.生成测试方法 3.测试结果 SpringBoot整合Junit测试 假设已对mybat ...
- SpringBoot中使用Junit测试
文章目录 SpringBoot整合Junit测试 目录 1.SpringBoot引入springboot的测试依赖 2.生成测试方法 3.测试结果 SpringBoot整合Junit测试 假设已对my ...
- 参数化测试 junit_使用JUnit 5进行更清洁的参数化测试
参数化测试 junit 参数化单元测试的总体思路是对不同的数据运行相同的测试方法. 在JUnit 4中创建参数化测试远非完美. 现有体系结构存在许多问题:将参数定义为类字段,并需要使用构造函数来创建它 ...
最新文章
- [每日短篇] 1D - 消除 if 的一种方法
- Azure 物联网开发者体验 7 月更新:边缘计算开发工具,ARM64 设备开发,VS Code 容器化开发工具...
- dynamodb java_使用Java将项目插入DynamoDB表
- 有些垃圾网站转载都不会
- 面对10ms的延迟,这群人就是一个字“改”
- OpenCV——高效遍历图像(C++版本)
- 关于OCR,做个记录。
- iOS开发笔记 基于wsdl2objc调用asp.net WebService
- LAMP兄弟连PHP高薪就业班2012召集令
- 学习通视频enc生成方法
- Unity3D-敌人巡逻和拉脱
- 刚闪电入门了树莓派:斩获不止Python,Linux,goLang,还有架构,格局...
- Android studio制作计算器源代码
- 网络通信专题总结之OTA专题
- 易购数码类电商商城网页设计与实现项目源码
- 拼多多开店怎么提高点击率?天创速盈提出应对措施
- 票据二维码中信息获取处理与分析系统 毕业设计
- 利用免费代理ip网站建立自己IP数据库
- 大型商业进销存系统源码
- 微波网络散射参数测量