软件测试赛学生赛样题-02-单元测试 任务四 题目2
题目2:
题目:
根据输入的年份和月份判断月份的天数。若月份不在有效范围之内,应提示:“月份输入不正确。”。月份不为2月,根据输入月份输出对应的月份天数。月份为2月,根据年份判断如为普通闰年,输出2月份正确天数;如为世纪闰年,输出2月份正确天数;不为闰年输出2月份天数。返回结果格式:“year年month月份的天数是days天。”year、month为传入的值,days为判断得到的天数值。其中变量year、month均须为正整数。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断返回期望结果和实际返回是否一致。
需求分析:
首先判断输入月份是否有效,否则提示“月份输入不正确。”。
月份为:4、6、9、11天数为30天。
月份为:1、3、5、7、8、10、12天数为31天。
月份为2月时,判断为平年还是闰年:平年为28天;闰年为29天
-——若为闰年:判断普通闰年还是世纪闰年
普通闰年:是指公历年份是能被4整除,不能被100整除
世纪闰年:是指公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年)
代码实现:
以下是Java类和JUnit测试类的概要示例代码:
首先是DateUtils类:
public class DateUtils {
public static String getDayInMonth(int year, int month) {
if(month < 1 || month > 12) {
return "月份输入不正确:。";
}
int days;
switch(month) {
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
ca