需求
日期问题
测试以下程序:该程序有三个输入变量 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)划分等价类并编号
2)为有效等价类设计测试用例
3)为每一个无效等价类至少设计一个测试用例
(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<