四 【单元测试】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<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参数化】

    经验总结扩展阅读