在写出一个测试类来测试上一个我所提问的类
时间: 2024-09-14 19:12:55 浏览: 43
为了测试我们刚才定义的`Student`类,你可以创建一个名为`StudentTest`的测试类。这个测试类通常会使用JUnit或其他单元测试框架来进行编写。下面是一个基本的例子,展示了如何测试学生的构造函数、年龄范围检查以及一些常见的属性访问方法:
```java
import org.junit.Test;
import static org.junit.Assert.*;
public class StudentTest {
@Test
public void testValidStudentConstruction() {
// 创建一个有效的学生实例
Student student = new Student("张三", 20, "男", "高三(1)班", "数学", 90.0);
// 验证属性是否正确设置
assertEquals("张三", student.getName());
assertEquals(20, student.getAge());
assertEquals("男", student.getGender());
assertEquals("高三(1)班", student.getClass());
assertEquals("数学", student.getSubject());
assertEquals(90.0, student.getScore(), 0.0); // 0.0允许的小数误差
}
@Test(expected = IllegalArgumentException.class)
public void testInvalidAgeConstructor() {
// 测试年龄超出范围的情况
new Student("李四", 55, "女", "高二(2)班", "语文", 85.0); // 这会抛出异常
}
@Test
public void testGettersAndSetters() {
Student student = new Student("王五", 19, "男", "高一(3)班", "英语", 75.0);
// 修改并验证属性值
student.setName("赵六");
student.setAge(21);
student.setScore(88.0);
assertEquals("赵六", student.getName());
assertEquals(21, student.getAge());
assertEquals(88.0, student.getScore(), 0.0);
}
}
```
在这个测试类中,我们分别进行了正常构造、年龄校验失败和属性操作的测试。每个测试方法都以注解开始,例如`@Test`用于标记这是一个测试用例,`@expected`则指定预期的异常类型。
阅读全文