0


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

1.0 前言

​ JUnit 4引入了一项名为参数化测试的新功能。参数化测试允许开发人员使用不同的值反复运行相同的测试。

1.1 参数化设置

这里我们直接上例子吧。

题目:

​ 输入小写的字符串。如字符串前缀为ab开头,则将前缀ab替换为ef并打印出替换后字符串,返回文字“替换前缀后的字符串为:”和替换后字符串值;如后缀为cd并且前缀不为ab,替换字符串中所有cd为gh并打印出替换后字符串,返回文字“替换cd后的字符串为:”和替换后字符串值;否则全部字母大写输出,返回文字“大写字母的字符串为:”和转换后的字符串值。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试

编写Demo01.java代码:

importjava.util.Scanner;publicclassDemo01{publicstaticStringchangeStr(String str){String reg1 ="^ab.*";String reg2 =".*cd$";if(str.matches(reg1)){
            str = str.replaceFirst("ab","ef");return"替换前缀后的字符串为:"+ str;}elseif(str.matches(reg2)){
            str = str.replaceAll("cd","gh");return"替换cd后的字符串为:"+ str;}else{
            str = str.toUpperCase();return"大写字母的字符串为:"+ str;}}}

编写Demo01Test.java代码:

importstaticorg.junit.Assert.*;importjava.util.Arrays;importjava.util.Collection;importorg.junit.After;importorg.junit.Before;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.junit.runners.Parameterized;@RunWith(Parameterized.class)publicclassDemo01Test{@Parameterized.ParameterspublicstaticCollection<Object[]>data(){returnArrays.asList(newObject[][]{{"abqwer","替换前缀后的字符串为:efqwer"},{"fjqwecdqwecd","替换cd后的字符串为:fjqweghqwegh"},{"qwer","大写字母的字符串为:QWER"}});}privatefinalString param;privatefinalString result;publicDemo01Test(String param,String result){this.param = param;this.result = result;}@Testpublicvoidteststr(){assertEquals(result,Demo01.changeStr(param));}}

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

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

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

标签: junit 单元测试 java

本文转载自: https://blog.csdn.net/HMY71/article/details/127671914
版权归原作者 还梦呦 所有, 如有侵权,请联系我们删除。

“【单元测试】Junit 4(四)--Junit4参数化”的评论:

还没有评论