1.0 前言? JUnit 4引入了一项名为参数化测试的新功能 。参数化测试允许开发人员使用不同的值反复运行相同的测试 。
1.1 参数化设置这里我们直接上例子吧 。
题目:
? 输入小写的字符串 。如字符串前缀为ab开头,则将前缀ab替换为ef并打印出替换后字符串,返回文字“替换前缀后的字符串为:”和替换后字符串值;如后缀为cd并且前缀不为ab,替换字符串中所有cd为gh并打印出替换后字符串 , 返回文字“替换cd后的字符串为:”和替换后字符串值;否则全部字母大写输出 , 返回文字“大写字母的字符串为:”和转换后的字符串值 。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试【四 【单元测试】Junit 4--Junit4参数化】编写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)); }}
主要可以拆分为五个步骤:- 使用@RunWith(Parameterized.class)注释测试类 。
- 创建一个使用@Parameters注释的公共静态方法 , 该方法返回一个对象集合作为测试数据集 。
- 创建一个公共构造函数,它接受相当于一行“测试数据”的内容 。
- 为测试数据的每个“列”创建一个实例变量 。
- 使用实例变量作为测试数据的来源创建测试用例 。
推荐阅读
- C# 9.0 添加和增强的功能【基础篇】
- 创造与魔法8月26日最新礼包兑换码在哪里领取
- 简笔画文房四宝|文房四宝包括哪些?
- 天玑810手机_搭载天玑810的手机
- 三 【单元测试】Junit 4--Junit4断言
- 许艺昌-韩国艺人许艺昌
- 别扭的拼音是什么 别扭的拼音
- 小米如何刷机及步骤(小米手机刷机的步骤)
- 手机QQ怎么截图和发送(qq怎么上传截图)
- .net 温故知新:【8】.NET 中的配置从xml转向json