• 【单元测试】Junit 4(四)--Junit4参数化


    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 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, Demo01.changeStr(param));
    	}
    
    }
    
    

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

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

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


    __EOF__

  • 本文作者: 还梦呦
  • 本文链接: https://www.cnblogs.com/hmy71/p/junit_4.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    电脑连上WIfi但无网络的问题解决办法
    java常见的三种定时任务调度框架,写得太棒了
    一起误删cni0虚拟网卡引发的k8s事故
    【Vue】自定义事件实现组件之间的通信(案例讲解)
    【MySQL】为什么使用B+树做索引
    Hadoop的基本框架
    开源.NET8.0小项目伪微服务框架(分布式、EFCore、Redis、RabbitMQ、Mysql等)
    【机器学习】XGB/LGBM
    Matplotlib 是一个广泛用于 Python 数据可视化的库
    内卷时代,扫地机器人何时能成为刚需?
  • 原文地址:https://www.cnblogs.com/hmy71/p/junit_4.html