使用JUnit框架编写测试类对以下程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断返回期望结果和实际返回是否一致。 public class DaysInMonth { public static String getDaysInMonth(int year,int month) { if(month<1||month>12) { return"月份输入不正确"; } int days; //不是二月的情况 if(month!=2) { switch(month) { case 4: case 6: case 9: case 11: days=30; break; default: days=31; break; } } //二月的情况 else { //闰年有29天 if(year%400==0||(year%4==0&&year%100!=0)){ days=29; } //平年有28天 else { days=28; } } return year+"年"+month+"月"+"月份的天数是"+days+"天"; } }
时间: 2024-04-08 22:35:45 浏览: 219
下面是使用JUnit框架编写的测试类,覆盖了代码中的各个分支情况,并使用`assertThat`和`equalTo`断言来判断返回结果是否符合期望:
```java
import org.junit.Test;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
public class DaysInMonthTest {
@Test
public void testGetDaysInMonth_validMonth_nonLeapYear() {
int year = 2022;
int month = 1;
String result = DaysInMonth.getDaysInMonth(year, month);
assertThat(result, equalTo("2022年1月份的天数是31天"));
}
@Test
public void testGetDaysInMonth_validMonth_leapYear() {
int year = 2020;
int month = 2;
String result = DaysInMonth.getDaysInMonth(year, month);
assertThat(result, equalTo("2020年2月份的天数是29天"));
}
@Test
public void testGetDaysInMonth_invalidMonth() {
int year = 2022;
int month = 13;
String result = DaysInMonth.getDaysInMonth(year, month);
assertThat(result, equalTo("月份输入不正确"));
}
}
```
这个测试类中编写了三个测试方法,分别对应了代码中的不同情况。第一个方法测试了在有效月份范围内的非闰年的情况,第二个方法测试了在有效月份范围内的闰年的情况,第三个方法测试了输入无效月份的情况。每个测试方法中使用`assertThat`和`equalTo`断言来判断返回结果是否符合预期。如果结果与预期相同,则测试通过;否则,测试失败。
希望能对您有所帮助!如果还有其他问题,请随时提问。
阅读全文