diff --git a/StudentManagementTest.java b/StudentManagementTest.java deleted file mode 100644 index e44f1e8..0000000 --- a/StudentManagementTest.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.studentmanagement; - -import com.studentmanagement.controller.StudentController; -import com.studentmanagement.model.Student; -import com.studentmanagement.exception.StudentNotFoundException; -import com.studentmanagement.exception.DuplicateStudentException; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import java.util.List; -import static org.junit.jupiter.api.Assertions.*; - -/** - * 学生管理系统测试类 - * 测试Model和Controller层的核心功能 - */ -public class StudentManagementTest { - private StudentController controller; - - @BeforeEach - void setUp() { - // 每个测试方法执行前初始化控制器 - controller = new StudentController(); - } - - @Test - void testGetAllStudents() { - // 测试获取所有学生 - List students = controller.getAllStudents(); - assertNotNull(students); - // 初始数据有3个学生 - assertTrue(students.size() >= 3); - } - - @Test - void testGetStudentById_Found() throws StudentNotFoundException { - // 测试根据ID查找存在的学生 - Student student = controller.getStudentById(1); - assertNotNull(student); - assertEquals(1, student.getId()); - assertEquals("张三", student.getName()); - } - - @Test - void testGetStudentById_NotFound() { - // 测试根据ID查找不存在的学生 - assertThrows(StudentNotFoundException.class, () -> { - controller.getStudentById(999); - }); - } - - @Test - void testAddStudent_Success() throws DuplicateStudentException { - // 测试添加新学生成功 - Student newStudent = new Student(10, "测试学生", 22, "软件工程", 88.0); - controller.addStudent(newStudent); - - // 验证学生是否添加成功 - try { - Student addedStudent = controller.getStudentById(10); - assertNotNull(addedStudent); - assertEquals("测试学生", addedStudent.getName()); - } catch (StudentNotFoundException e) { - fail("学生添加失败,找不到添加的学生"); - } - } - - @Test - void testAddStudent_Duplicate() throws DuplicateStudentException { - // 测试添加重复ID的学生 - Student student1 = new Student(20, "重复测试1", 23, "数据库", 92.0); - controller.addStudent(student1); - - // 尝试添加相同ID的学生 - Student student2 = new Student(20, "重复测试2", 24, "网络", 85.0); - assertThrows(DuplicateStudentException.class, () -> { - controller.addStudent(student2); - }); - } - - @Test - void testUpdateStudent_Success() throws StudentNotFoundException, DuplicateStudentException { - // 先添加一个学生用于测试更新 - Student student = new Student(30, "待更新学生", 20, "Java基础", 75.0); - controller.addStudent(student); - - // 更新学生信息 - Student updatedStudent = new Student(30, "已更新学生", 21, "Java高级", 85.0); - controller.updateStudent(updatedStudent); - - // 验证更新是否成功 - Student retrievedStudent = controller.getStudentById(30); - assertEquals("已更新学生", retrievedStudent.getName()); - assertEquals(21, retrievedStudent.getAge()); - assertEquals("Java高级", retrievedStudent.getCourse()); - assertEquals(85.0, retrievedStudent.getGrade()); - } - - @Test - void testUpdateStudent_NotFound() { - // 测试更新不存在的学生 - Student student = new Student(999, "不存在的学生", 22, "测试课程", 80.0); - assertThrows(StudentNotFoundException.class, () -> { - controller.updateStudent(student); - }); - } - - @Test - void testDeleteStudent_Success() throws StudentNotFoundException, DuplicateStudentException { - // 先添加一个学生用于测试删除 - Student student = new Student(40, "待删除学生", 22, "测试课程", 78.0); - controller.addStudent(student); - - // 删除学生 - controller.deleteStudent(40); - - // 验证删除是否成功 - assertThrows(StudentNotFoundException.class, () -> { - controller.getStudentById(40); - }); - } - - @Test - void testDeleteStudent_NotFound() { - // 测试删除不存在的学生 - assertThrows(StudentNotFoundException.class, () -> { - controller.deleteStudent(999); - }); - } - - @Test - void testGetStudentsByCourse() { - // 测试根据课程查找学生 - List javaStudents = controller.getStudentsByCourse("Java编程"); - assertNotNull(javaStudents); - // 初始数据中应该有一个Java编程的学生 - assertTrue(javaStudents.size() >= 1); - - // 验证所有返回的学生都是Java编程课程 - for (Student student : javaStudents) { - assertTrue(student.getCourse().equalsIgnoreCase("Java编程")); - } - } - - @Test - void testGetStudentsByGradeAbove() { - // 测试查找成绩高于指定分数的学生 - List highGradeStudents = controller.getStudentsByGradeAbove(88.0); - assertNotNull(highGradeStudents); - - // 验证所有返回的学生成绩都高于等于88.0 - for (Student student : highGradeStudents) { - assertTrue(student.getGrade() >= 88.0); - } - } - - @Test - void testCalculateAverageGradeByCourse() { - // 测试计算课程平均成绩 - double avgGrade = controller.calculateAverageGradeByCourse("Java编程"); - // 初始数据中Java编程的学生成绩为85.5 - assertTrue(avgGrade > 0); - } - - @Test - void testCalculateAverageAge() { - // 测试计算平均年龄 - double avgAge = controller.calculateAverageAge(); - assertTrue(avgAge > 0); - } -} \ No newline at end of file