java test20002_计算某天的下一天:黑盒测试之等价类划分+JUnit参数化测试

题目要求

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

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

编写getNextDate函数;

掌握Junit4的用法,使用Junit4测试getNextDate函数。

等价类表

假设输入格式为year,month,day,且三个输入变量year、month和day均被输入。

year要区分闰年和平年,其中闰年还可以分为世纪闰年和普通闰年,且year要属于[1900,2050]。

month要根据该月有几天来进行区分,并且需要考虑是否向year进位,且month要属于[1,12]。

day要根据月份来判断天数是否合法,并且需要考虑是否向month进位,且day要属于[1,31]。

等价类划分如下。

6f13055e81f8a0980035c7284adca0d1.png

测试用例

有效等价类测试用例

共有5个有效等价类测试用例。

测试数据

期望结果

覆盖范围

2004/12/25

2004/12/26

2,10,14

2001/2/28

2001/3/1

3,7,15

2000/2/29

2000/3/1

1,7,16

2001/4/30

2001/5/1

3,8,17

2001/5/31

2001/6/1

3,9,18

无效等价类测试用例

共有12个有效等价类测试用例。

测试数据

期望结果

覆盖范围

1899/6/1

year非法

4

2051/6/1

year非法

5

a/6/1

year非法

6

1999/0/1

month非法

11

1999/13/1

month非法

12

1999/a/1

month非法

13

1999/1/0

day非法

19

1999/1/32

day非法

20

1999/1/a

day非法

21

2001/2/29

day非法

22

2000/2/30

day非法

23

2001/4/31

day非法

24

源代码

项目结构如下图所示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值