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)); }}
主要可以拆分为五个步骤:- 使用@RunWith(Parameterized.class)注释测试类 。
- 创建一个使用@Parameters注释的公共静态方法,该方法返回一个对象集合作为测试数据集 。
- 创建一个公共构造函数,它接受相当于一行“测试数据”的内容 。
- 为测试数据的每个“列”创建一个实例变量 。
- 使用实例变量作为测试数据的来源创建测试用例 。
【四 【单元测试】Junit 4--Junit4参数化】
经验总结扩展阅读
- C# 9.0 添加和增强的功能【基础篇】
- 万圣节的好友聚会祝福语
- 原神3.0须弥钓鱼协会位置在哪
- 2023年9月16日是踏青吉日吗 2023年农历八月初二踏青吉日
- 2023年9月16日适合畜牧吗 2023年9月16日畜牧好不好
- 简笔画文房四宝|文房四宝包括哪些?
- 天玑810手机_搭载天玑810的手机
- 香精豆怎么分辨有什么危害 香精豆是增味豆吗
- 十一月你好的朋友圈祝福语
- 长泰县属于哪个市 长泰县是属什么市什么省