单元测试@Parameters

这是一个使用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
    }
   
}

 

相关推荐

  1. 单元测试@Parameters

    2024-01-16 22:46:05       56 阅读
  2. 软件测试——单元测试

    2024-01-16 22:46:05       57 阅读
  3. 单元测试和集成测试

    2024-01-16 22:46:05       29 阅读
  4. 软件测试单元测试

    2024-01-16 22:46:05       26 阅读
  5. spring 单元测试 Junit

    2024-01-16 22:46:05       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-16 22:46:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-16 22:46:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-16 22:46:05       87 阅读
  4. Python语言-面向对象

    2024-01-16 22:46:05       96 阅读

热门阅读

  1. Spring MVC(三) 国际化

    2024-01-16 22:46:05       48 阅读
  2. 力扣-三数之和

    2024-01-16 22:46:05       56 阅读
  3. ACM板子

    ACM板子

    2024-01-16 22:46:05      52 阅读
  4. rust嵌入式开发补充

    2024-01-16 22:46:05       61 阅读
  5. mac安装mysql和docker

    2024-01-16 22:46:05       56 阅读
  6. Hologres + Flink 流式湖仓建设

    2024-01-16 22:46:05       56 阅读
  7. 生成对抗网络GAN简介- 图像处理应用

    2024-01-16 22:46:05       58 阅读
  8. 智能寻迹避障清障机器人设计(第七章)

    2024-01-16 22:46:05       46 阅读
  9. Android Media3 ExoPlayer 如何正确设置缓存大小

    2024-01-16 22:46:05       55 阅读