用jest生成一个Test1: 设计程序实现:当输入日期时显示星期几,并用等价类及边界值法测试 用idea 用java
时间: 2024-12-16 15:22:29 浏览: 2
在Java中使用Jest(实际上是JUnit,因为Jest是Node.js的单元测试库,而Java有自己的JUnit框架)编写一个关于日期和星期几的测试用例,首先你需要设计一个简单的程序来接收日期并返回星期。这里是一个基础的示例:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateCalculator {
public String getDayOfWeek(LocalDate date) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return date.format(formatter).substring(0, 4);
}
}
```
这个`DateCalculator`类有一个`getDayOfWeek`方法,它接受一个`LocalDate`对象,并返回字符串形式的星期。
接下来,我们将使用JUnit进行测试。首先,创建一个名为`DateCalculatorTest.java`的测试文件:
```java
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.experimental.theories.DataPoints;
import org.junit.experimental.theories.Theories;
import org.junit.experimental.theories.Theory;
import java.time.LocalDate;
import java.util.Arrays;
public class DateCalculatorTest {
@DataPoints
public static LocalDate[] testDates = {
LocalDate.of(2023, 1, 1), // 等价类边界值:今年的第一天
LocalDate.of(2022, 12, 31), // 去年最后一天
LocalDate.of(2022, 12, 25), // 圣诞节
LocalDate.of(2023, 2, 24), // 春分日前一天(边界值)
LocalDate.of(2023, 7, 4), // 独立日
LocalDate.of(2023, 9, 23), // 秋分日
LocalDate.of(2023, 12, 26) // 除圣诞节外的第一个工作日(边界值)
};
@Theory
public void testGetDayOfWeek(LocalDate inputDate) {
String expectedWeekday = "Monday"; // 这里假设2023年的第一天是周一(实际需要检查真实的日历)
String actualWeekday = new DateCalculator().getDayOfWeek(inputDate);
assertEquals(expectedWeekday, actualWeekday);
}
@Test
public void testInvalidDate() {
LocalDate invalidDate = LocalDate.of(1900, 2, 30); // 超出合理范围的日期,如闰年前的2月30日
Exception exception = assertThrows(IllegalArgumentException.class, () -> new DateCalculator().getDayOfWeek(invalidDate));
assertEquals("Invalid date", exception.getMessage());
}
阅读全文