unit测试 实验任务4: 待测试类NextDate类,包含一个判断闰年的方法isleap(),代码如图。请设计测试用例,并使用Junit对isleap()进行测试。
时间: 2024-09-09 11:02:05 浏览: 85
实验任务4涉及的是单元测试,主要是针对名为`NextDate`类的`isleap()`方法进行验证。这个方法需要确定给定的年份是否是闰年。闰年规则通常包括能被4整除但不能被100整除的年份,或者是能被400整除的年份。
首先,你需要设计一些测试用例来覆盖各种可能的情况:
1. **正常闰年**:例如2000年(可以被400整除),1984年(能被4整除且不能被100整除)。
2. **非闰年**:例如1900年(能被100整除但不能被400整除),1997年(不能被4整除)。
3. **边界条件**:例如公元元年(1 AD)和2000年以后的第一年(如2001年),以及负数年份。
4. **特殊情况**:如果输入是非法值,如字符串、负无穷大等。
然后,你可以使用JUnit框架编写测试代码,步骤如下:
```java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class NextDateTest {
@Test
public void testIleapLeapYear() {
NextDate nextDate = new NextDate();
assertTrue(nextDate.isleap(2000)); // 闰年测试
assertTrue(nextDate.isleap(1984));
assertFalse(nextDate.isleap(1900));
assertFalse(nextDate.isleap(1997));
}
@Test
public void testIleapInvalidInput() {
NextDate nextDate = new NextDate();
assertThrows(IllegalArgumentException.class, () -> nextDate.isleap("2022")); // 非数字输入
assertThrows(IllegalArgumentException.class, () -> nextDate.isleap(Integer.MIN_VALUE)); // 负无穷大
}
// 其他边界和特殊用例...
}
```
在这个例子中,`@Test`注解用于标记每个测试方法,`assertTrue`和`assertFalse`用于断言预期结果,而`assertThrows`则用于检查异常是否会被抛出。
阅读全文