单元测试(3)--参数化测试方法

单元测试中,针对不同输入和预期结果,参数化测试能有效简化用例设计。通过在测试类加入@Parameterized.class,声明输入参数和预期结果变量,定义参数数组和构造函数,可以实现一组通用用例的执行,覆盖多种场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用:

我们在测试登录框的时候,可能会输入帐号密码,根据不同的帐号密码,返回值也不一样。设计用例时,不同的仅仅是输入数据及预期的结果,而用例执行的中间过程是一样的。这时,我们可以通过参数化测试方法,来达到简化用例的目的,你可以创建一个通用的用例,然后通过数组的方式,给出输入的的变量值及对应的期望值。数组里面有几组参数,那么最终执行的用例数量也是相应的。

代码示例:

如何实现:
1.在测试类的开头加:@RunWith?(Parameterized.class)

2.声明了两个变量inputTime,expectTime,在用例中分别对应到输入的参数及预期的结果

3.一个public static Collection regExValues()方法用于定义参数数组(请严格遵照里面的语法)

4.定义了一个构造函数,用户输入我们在数组中定义的值,注意,构造函数中第一个变量,对应数组中每组参数的第一个变量;依次类推……

import static org.junit.Assert.*;
 
import java.util.Arrays;
import java.util.Collection;
 
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
 
/** 
 * ValidUtilTest 类描述:
 *
 * @author harryli
 */
 
@RunWith(Parameterized.class)
public class ValidUtilTest {
    private String inputTime;
    private String expectTime;
    
    @Test
    public void testIsBuildTimeCorrectForDailyBuildJob()
    {
        ValidUtil util = new ValidUtil();
        String newTime = util.isBuildTimeCorrectForDailyBuildJob(inputTime);
        assertEquals(expectTime, newTime);
    }
    
    
    @Parameters
    public static Collection regExValues() {
     return Arrays.asList(new Object[][] {
      {"01:00", "01:00"},
      {"11:60", null },
      {"24:00", null },
      {"", null },
      {"4:00", "04:00" }});
    }
    
 
    
    public ValidUtilTest(String inputTime,String expectTime) {
     this.expectTime = expectTime;
     this.inputTime = inputTime;
    }
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值