1.0 前言

​ JUnit 4引入了一项名为参数化测试的新功能。参数化测试允许开发人员使用不同的值反复运行相同的测试。

1.1 参数化设置

这里我们直接上例子吧。

题目:

​ 输入小写的字符串。如字符串前缀为ab开头,则将前缀ab替换为ef并打印出替换后字符串,返回文字“替换前缀后的字符串为:”和替换后字符串值;如后缀为cd并且前缀不为ab,替换字符串中所有cd为gh并打印出替换后字符串,返回文字“替换cd后的字符串为:”和替换后字符串值;否则全部字母大写输出,返回文字“大写字母的字符串为:”和转换后的字符串值。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试

编写Demo01.java代码:

import java.util.Scanner;

public class Demo01 {

	public static String changeStr(String str) {

		String reg1 = "^ab.*";
String reg2 = ".*cd$";
if (str.matches(reg1)) {
str = str.replaceFirst("ab", "ef");
return "替换前缀后的字符串为:" + str;
} else if (str.matches(reg2)) {
str = str.replaceAll("cd", "gh");
return "替换cd后的字符串为:"+ str;
} else {
str = str.toUpperCase();
return "大写字母的字符串为:"+ str;
} }
}

编写Demo01Test.java代码:

import static org.junit.Assert.*;

import java.util.Arrays;
import java.util.Collection;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized; @RunWith(Parameterized.class)
public class Demo01Test { @Parameterized.Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ "abqwer", "替换前缀后的字符串为:efqwer" },
{ "fjqwecdqwecd", "替换cd后的字符串为:fjqweghqwegh" },
{ "qwer", "大写字母的字符串为:QWER" }
}
);
} private final String param;
private final String result; public Demo01Test(String param, String result) {
this.param = param;
this.result = result;
} @Test
public void teststr() {
assertEquals(result, Demo01changeStr(param));
} }

主要可以拆分为五个步骤:

  1. 使用@RunWith(Parameterized.class)注释测试类。
  2. 创建一个使用@Parameters注释的公共静态方法,该方法返回一个对象集合作为测试数据集。
  3. 创建一个公共构造函数,它接受相当于一行“测试数据”的内容。
  4. 为测试数据的每个“列”创建一个实例变量。
  5. 使用实例变量作为测试数据的来源创建测试用例。

以上就是这节的全部内容,如有错误,还请各位指正!

【单元测试】Junit 4(四)--Junit4参数化的更多相关文章

  1. Spring注解AOP及单元测试junit(6)

    2019-03-10/20:19:56 演示:将xml配置方式改为注解方式 静态以及动态代理推荐博客:https://blog.csdn.net/javazejian/article/details/ ...

  2. Java单元测试(Junit+Mock+代码覆盖率)---------转

    Java单元测试(Junit+Mock+代码覆盖率) 原文见此处 单元测试是编写测试代码,用来检测特定的.明确的.细颗粒的功能.单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的. 单元测 ...

  3. Java学习——单元测试JUnit

    Java学习——单元测试JUnit 摘要:本文主要介绍了什么是单元测试以及怎么进行单元测试. 部分内容来自以下博客: https://www.cnblogs.com/wxisme/p/4779193. ...

  4. Springboot单元测试Junit深度实践

    Springboot单元测试Junit深度实践 前言 单元测试的好处估计大家也都知道了,但是大家可以发现在国内IT公司中真正推行单测的很少很少,一些大厂大部分也只是在核心产品推广单测来保障质量,今天这 ...

  5. JMeter四种参数化方式

    JMeter参数化是指把固定的数据动态化,这样更贴合实际的模拟用户请求,比如模拟多个不同账号.JMeter一共有四种参数化方式,分别是: CSV Data Set Config Function He ...

  6. 菜鸟学Java(二十一)——如何更好的进行单元测试——JUnit

    测试在软件生命周期中的重要性,不用我多说想必大家也都非常清楚.软件测试有很多分类,从测试的方法上可分为:黑盒测试.白盒测试.静态测试.动态测试等:从软件开发的过程分为:单元测试.集成测试.确认测试.验 ...

  7. idea单元测试junit

    参考文章地址地址:http://blog.csdn.net/u011138533/article/details/52165577 本文按以下顺序讲解JUnit4的使用 下载jar包 单元测试初体验 ...

  8. SpringBoot与单元测试JUnit的结合

    有些人认为,写单元测试就是在浪费时间 ,写完代码,依然还是能够进行测试的.但是,还是建议写单元测试的,可以让你的条理更加清晰,而且当某个功能出现问题时,可能通过单元测试很容易的定位和解决问题.本文主要 ...

  9. Java单元测试 Junit TestNG之介绍

    Junit是Java中默认的单元测试框架,通过注解的方式去识别测试方法 JUnit4 JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且 ...

随机推荐

  1. io几乎没有,iowait却很高

    遇到如下一种情况: top - 09:43:03 up 2 days, 22:48, 9 users, load average: 133.19, 132.60, 132.32 Tasks: 767 ...

  2. 什么?WPF 不支持 SVG ?

    什么?WPF 不支持 SVG ? 控件名:SharpVectors 作者:Elinam LLC (Japan) 项目地址: https://github.com/ElinamLLC/SharpVect ...

  3. ViewGroup事件分发源码分析

    1.AndroidStudio源码调试方式 AndroidStudio默认是支持一部分源码调试的,但是build.gradle(app) 中的sdk版本要保持一致, 最好是编译版本.运行版本以及手机的 ...

  4. ubuntu安装BricsCAD

    目录 目录 下载软件包 安装deb软件包 sudo dpkg -i *.deb 将Crack/bricsys.lic中hostid= <YOURHOSTID>替代本机MAC地址(中间不要冒 ...

  5. 在OpenCloudOS 上安装.NET 6

    开源操作系统社区 OpenCloudOS 由腾讯与合作伙伴共同倡议发起,是完全中立.全面开放.安全稳定.高性能的操作系统及生态.OpenCloudOS 沉淀了多家厂商在软件和开源生态的优势,继承了腾讯 ...

  6. IDEA 修改注释的颜色

  7. Webdriver安装记

    和之前的博文对照,这是一篇不一样的博文 因为终于开始实际应用啦! 首先,要安装Python Python在哪找--官网有链接的:Python Release Python 3.6.3 | Python ...

  8. 我的Vue之旅、02 ES6基础、模块、路径、IO

    自定义模块 为什么要模块?模块化源代码能给我们带来什么好处? 试想一个巨无霸网购平台,在没有模块化的情况下,如果出现bug,程序员就要在几百万行代码里调试,导致后期维护成本上升,为了解决问题,模块化按 ...

  9. Java中一些必须要知道的东西

    直接打印数组名称,得到的是数组对应的内存地址--哈希值.

  10. ProxySQL配置之MySQL服务器配置

    备注:文章编写时间201904-201905期间,后续官方在github的更新没有被写入 MySQL服务器配置 [MySQL Server Configuration] 一.在ProxySQL中配置后 ...