assertThat(MonthDays2.getMonthDays(2021, 2), equalTo("2021年2月份的天数是28天。"));这句代码里面的equalTo方法,需要导入哪个java包
时间: 2023-06-13 08:05:46 浏览: 45
equalTo方法是Hamcrest库中的方法,需要导入hamcrest-core包。可以使用以下导入语句:
```java
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
```
注意要在Maven或Gradle中添加Hamcrest库的依赖。
相关问题
根据输入的年份和月份判断月份的天数。若月份不在有效范围之内,应提示:“月份输入不正确。”。月份不为2月,根据输入月份输出对应的月份天数。月份为2月,根据年份判断如为普通闰年,输出2月份正确天数;如为世纪闰年,输出2月份正确天数;不为闰年输出2月份天数。返回结果格式:“year年month月份的天数是days天。”year、month为传入的值,days为判断得到的天数值。其中变量year、month均须为正整数。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断返回期望结果和实际返回是否一致。
以下是 Java 代码实现:
```java
public class MonthDays {
public static String getMonthDays(int year, int month) {
int days = 0;
if (month < 1 || month > 12) {
return "月份输入不正确。";
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days = 29;
} else {
days = 28;
}
break;
}
return year + "年" + month + "月份的天数是" + days + "天。";
}
}
```
以下是使用 JUnit 框架编写的测试类:
```java
import org.junit.Test;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
public class MonthDaysTest {
@Test
public void test31Days() {
assertThat(MonthDays.getMonthDays(2021, 1), equalTo("2021年1月份的天数是31天。"));
assertThat(MonthDays.getMonthDays(2021, 3), equalTo("2021年3月份的天数是31天。"));
assertThat(MonthDays.getMonthDays(2021, 5), equalTo("2021年5月份的天数是31天。"));
assertThat(MonthDays.getMonthDays(2021, 7), equalTo("2021年7月份的天数是31天。"));
assertThat(MonthDays.getMonthDays(2021, 8), equalTo("2021年8月份的天数是31天。"));
assertThat(MonthDays.getMonthDays(2021, 10), equalTo("2021年10月份的天数是31天。"));
assertThat(MonthDays.getMonthDays(2021, 12), equalTo("2021年12月份的天数是31天。"));
}
@Test
public void test30Days() {
assertThat(MonthDays.getMonthDays(2021, 4), equalTo("2021年4月份的天数是30天。"));
assertThat(MonthDays.getMonthDays(2021, 6), equalTo("2021年6月份的天数是30天。"));
assertThat(MonthDays.getMonthDays(2021, 9), equalTo("2021年9月份的天数是30天。"));
assertThat(MonthDays.getMonthDays(2021, 11), equalTo("2021年11月份的天数是30天。"));
}
@Test
public void testLeapYear() {
assertThat(MonthDays.getMonthDays(2020, 2), equalTo("2020年2月份的天数是29天。"));
assertThat(MonthDays.getMonthDays(2000, 2), equalTo("2000年2月份的天数是29天。"));
}
@Test
public void testCommonYear() {
assertThat(MonthDays.getMonthDays(2021, 2), equalTo("2021年2月份的天数是28天。"));
assertThat(MonthDays.getMonthDays(1900, 2), equalTo("1900年2月份的天数是28天。"));
}
@Test
public void testInvalidMonth() {
assertThat(MonthDays.getMonthDays(2021, 13), equalTo("月份输入不正确。"));
assertThat(MonthDays.getMonthDays(2021, 0), equalTo("月份输入不正确。"));
assertThat(MonthDays.getMonthDays(2021, -1), equalTo("月份输入不正确。"));
}
}
```
测试数据设计如下:
- test31Days() 方法:测试1月、3月、5月、7月、8月、10月、12月。
- test30Days() 方法:测试4月、6月、9月、11月。
- testLeapYear() 方法:测试闰年2月份。
- testCommonYear() 方法:测试非闰年2月份。
- testInvalidMonth() 方法:测试月份输入不正确的情况,包括输入13月、0月和负数月份。
以上测试数据满足语句覆盖测试,每条测试数据在测试类中对应一个测试方法。使用 assertThat 中的 equalTo 断言判断返回期望结果和实际返回是否一致。
用java实现从键盘输入月份,输出这个月的天数,比如输入1,则输出31天,要求使用switch语句。 不考虑润年,2月认为是28天
好的,以下是Java代码实现:
```java
import java.util.Scanner;
public class MonthDays {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入月份:");
int month = scanner.nextInt();
int days = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
days = 28;
break;
default:
System.out.println("输入的月份不合法!");
return;
}
System.out.println(month + "月份有" + days + "天。");
}
}
```
运行程序后,输入月份即可输出该月份的天数。当输入的月份不在1-12的范围内时,会提示输入的月份不合法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)