【单元测试】Junit 4(四)--Junit4参数化
  vhWbAs9lskEJ 2023年11月01日 56 0

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

}

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

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

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  K9VoqAoS5QtN   2024年05月08日   83   0   0 软件测试
vhWbAs9lskEJ
最新推荐 更多