使用等价类划分法以及Junit的参数化测试,测试nextDate函数

博客介绍了如何使用等价类划分法设计测试用例,针对一个接收月份、日期和年份的nextDate函数,确保其能正确输出隔天日期。同时,使用Junit4的参数化测试进行验证,覆盖了有效和无效输入的情况。
摘要由CSDN通过智能技术生成

需求

日期问题

测试以下程序:该程序有三个输入变量 month、day、year (month、day 和 year 均为整数值,并且满足:1 ≤ months ≤ 12、1 ≤ days ≤ 31 和 1900 ≤ year ≤ 2050),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔天的日期。例如,输入为 2004 年 11 月 30 日,则该程序的输出为 2004 年 12 月 1 日。

(1) 划分等价类,按照等价类划分法设计测试用例;

(2) 编写 nextDate 函数

(3) 掌握 Junit4 的用法,使用 Junit4 测试 nextdate 函数。

实现

(1)根据题目要求编写测试用例

1)划分等价类并编号

https://pic-1259640338.cos.ap-shanghai.myqcloud.com/img/Screen%20Shot%202021-06-13%20at%2022.24.17.png

2)为有效等价类设计测试用例

https://pic-1259640338.cos.ap-shanghai.myqcloud.com/img/Screen%20Shot%202021-06-13%20at%2022.25.07.png

3)为每一个无效等价类至少设计一个测试用例

https://pic-1259640338.cos.ap-shanghai.myqcloud.com/img/Screen%20Shot%202021-06-13%20at%2022.25.38.png

(2)编写nextDate函数,使用Junit4测试执行测试

nextDate函数

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Pattern;

public class Date {
   
    public String nextDate(String s_year, String s_month, String s_day){
   
        //检测是否存在无效字符
        if (!(isInteger(s_year) && isInteger(s_month) && isInteger(s_day)))
            return "无效的输入日期!";
        //将字符串转为int
        int year = Integer.parseInt(s_year);
        int month = Integer.parseInt(s_month);
        int day = Integer.parseInt((s_day));
        boolean flag = false;
        if (year < 1900 || year > 2050) {
   
            return ("年的值不在指定范围之内");
        } else if (month > 12 || month < 1) {
   
            return ("月的值不在指定范围之内");
        } else if (day > 31 || day < 1 ) {
   
            return<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值