单元测试@Parameters

本文详细解释了如何在Java中使用JUnit的Parameterized注解进行参数化测试,展示了如何为String4Test类提供数据,以及如何测试String4类的processString方法,确保输入字符串经过特定条件处理后得到预期结果。
摘要由CSDN通过智能技术生成

这是一个使用JUnit的Parameterized测试的Java代码。我会为你逐行解释它的含义:
@RunWith(Parameterized.class)

这是JUnit的注解,它告诉JUnit这个测试类应该使用Parameterized运行器。Parameterized运行器使你可以为你的测试方法提供参数,这样你可以用多组数据运行同一个测试方法。
public class String4Test{

这是定义一个名为String4Test的公共类。
@Parameter(value=0)public String x;

这是定义一个公共字符串变量x,并使用@Parameter注解标记它的值为0。这意味着x是参数化测试中的第一个参数。
@Parameter(value=1)public String str;

这是定义一个公共字符串变量str,并使用@Parameter注解标记它的值为1。这意味着str是参数化测试中的第二个参数。
@Parameters

这是告诉JUnit从静态方法中获取参数数据。具体的参数值由后面的方法提供。
public static Collection<Object[]> data(){

这是定义一个公共的静态方法,该方法返回一个对象数组的集合(即二维数组)。这个方法提供了测试所需要的所有参数数据。
return Arrays.asList(new Object[][] {{"ababcd","替换前缀后的字符串为:efabcd"},{"cbaecd", "替换cd后的字符串为:cbaegh"},{"ebcdee","大写字母的字符串为:EBCDEE"}});

这行代码返回一个列表,该列表包含三个对象数组。每个数组有两个元素:第一个元素是要传递给测试方法的输入数据,第二个元素是期望的结果。例如,对于输入"ababcd",期望的结果是"替换前缀后的字符串为:efabcd"。

 
public class String4 {  
    public static String processString(String str) {  
        if (str.startsWith("ab")) {  
            System.out.print( str.replaceFirst("ab", "ef"));
            return "替换前缀后的字符串为:" + str.replaceFirst("ab", "ef");  
        } else if (str.endsWith("cd") && !str.startsWith("ab")) {  
            System.out.print( str.replaceAll("cd", "gh"));
            return "替换cd后的字符串为:" + str.replaceAll("cd", "gh");  
        } else {  
            return "大写字母的字符串为:" + str.toUpperCase();  
        }  
    }  
}

@RunWith(Parameterized.class)//1
public class String4Test{
    @Parameter(value=0)public String x;//2
    @Parameter(value=1)public String str;//3[0,1][1,1]
    @Parameters
    public static Collection<Object[]> data(){//4
        return Arrays.asList(new Object[][] {{"ababcd","替换前缀后的字符串为:efabcd"},{"cbaecd", "替换cd后的字符串为:cbaegh"},{"ebcdee","大写字母的字符串为:EBCDEE"}});
        }
    
    @Test
    public void testChangeStr() {
        String4 string4=new String4();
        assertEquals(str,String4.processString(x));//str怎么就第二个元素,value=1
    }
   
}

 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值