From b01028a13f02014d45cee5e4a66499e8f1e8a28b Mon Sep 17 00:00:00 2001 From: seahi Date: Wed, 18 Dec 2024 08:53:25 +0800 Subject: [PATCH] test: add unit tests for model class --- src/test/model/ApprovalStatusTest.java | 20 +++++++ src/test/model/LeaveRequestTest.java | 74 ++++++++++++++++++++++++++ src/test/model/TeacherTest.java | 51 ++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 src/test/model/ApprovalStatusTest.java create mode 100644 src/test/model/LeaveRequestTest.java create mode 100644 src/test/model/TeacherTest.java diff --git a/src/test/model/ApprovalStatusTest.java b/src/test/model/ApprovalStatusTest.java new file mode 100644 index 0000000..40389f7 --- /dev/null +++ b/src/test/model/ApprovalStatusTest.java @@ -0,0 +1,20 @@ +package test.model; + +import model.ApprovalStatus; +import org.junit.Test; +import static org.junit.Assert.*; + +public class ApprovalStatusTest { + + @Test + public void testEnumValues() { + assertEquals("待审批状态描述不匹配", "待审批", ApprovalStatus.PENDING.getDescription()); + assertEquals("已批准状态描述不匹配", "已批准", ApprovalStatus.APPROVED.getDescription()); + assertEquals("已驳回状态描述不匹配", "已驳回", ApprovalStatus.REJECTED.getDescription()); + } + + @Test + public void testEnumCount() { + assertEquals("审批状态枚举值数量应为3", 3, ApprovalStatus.values().length); + } +} diff --git a/src/test/model/LeaveRequestTest.java b/src/test/model/LeaveRequestTest.java new file mode 100644 index 0000000..c788e0d --- /dev/null +++ b/src/test/model/LeaveRequestTest.java @@ -0,0 +1,74 @@ +package test.model; + +import model.ApprovalStatus; +import model.LeaveRequest; +import model.Student; +import model.Teacher; +import org.junit.Test; +import java.util.Date; +import static org.junit.Assert.*; + +public class LeaveRequestTest { + + @Test + public void testDefaultConstructor() { + LeaveRequest request = new LeaveRequest(); + + assertEquals("新建请假申请应为待审批状态", ApprovalStatus.PENDING, request.getStatus()); + assertNotNull("申请时间不应为空", request.getRequestTime()); + } + + @Test + public void testSettersAndGetters() { + LeaveRequest request = new LeaveRequest(); + + // 设置测试数据 + int id = 1; + Student student = new Student(); + student.setId(1); + student.setName("张三"); + + Teacher approver = new Teacher(); + approver.setId(1); + approver.setName("李老师"); + + Date startTime = new Date(); + Date endTime = new Date(startTime.getTime() + 86400000); // 一天后 + double duration = 24.0; + String location = "北京"; + String reasonType = "事假"; + String reasonDetail = "参加比赛"; + String approvalComment = "同意"; + Date approvalTime = new Date(); + + // 设置属性 + request.setId(id); + request.setStudent(student); + request.setStartTime(startTime); + request.setEndTime(endTime); + request.setDuration(duration); + request.setLocation(location); + request.setReasonType(reasonType); + request.setReasonDetail(reasonDetail); + request.setLeavingCity(true); + request.setStatus(ApprovalStatus.APPROVED); + request.setApprover(approver); + request.setApprovalComment(approvalComment); + request.setApprovalTime(approvalTime); + + // 验证 + assertEquals("ID应匹配", id, request.getId()); + assertEquals("学生信息应匹配", student, request.getStudent()); + assertEquals("开始时间应匹配", startTime, request.getStartTime()); + assertEquals("结束时间应匹配", endTime, request.getEndTime()); + assertEquals("时长应匹配", duration, request.getDuration(), 0.01); + assertEquals("地点应匹配", location, request.getLocation()); + assertEquals("请假类型应匹配", reasonType, request.getReasonType()); + assertEquals("请假原因应匹配", reasonDetail, request.getReasonDetail()); + assertTrue("是否离津应匹配", request.isLeavingCity()); + assertEquals("状态应匹配", ApprovalStatus.APPROVED, request.getStatus()); + assertEquals("审批人应匹配", approver, request.getApprover()); + assertEquals("审批意见应匹配", approvalComment, request.getApprovalComment()); + assertEquals("审批时间应匹配", approvalTime, request.getApprovalTime()); + } +} diff --git a/src/test/model/TeacherTest.java b/src/test/model/TeacherTest.java new file mode 100644 index 0000000..98f997f --- /dev/null +++ b/src/test/model/TeacherTest.java @@ -0,0 +1,51 @@ +package test.model; + +import model.Teacher; +import org.junit.Test; +import static org.junit.Assert.*; + +public class TeacherTest { + + @Test + public void testConstructorAndGetters() { + String teacherId = "T001"; + String name = "张老师"; + String department = "计算机系"; + String contact = "13800138000"; + String password = "password123"; + + Teacher teacher = new Teacher(teacherId, name, department, contact, password); + + assertEquals("教师工号应匹配", teacherId, teacher.getTeacherId()); + assertEquals("教师姓名应匹配", name, teacher.getName()); + assertEquals("所属部门应匹配", department, teacher.getDepartment()); + assertEquals("联系方式应匹配", contact, teacher.getContact()); + assertEquals("密码应匹配", password, teacher.getPassword()); + } + + @Test + public void testSetters() { + Teacher teacher = new Teacher(); + + int id = 1; + String teacherId = "T002"; + String name = "李老师"; + String department = "数学系"; + String contact = "13900139000"; + String password = "newpass123"; + + teacher.setId(id); + teacher.setTeacherId(teacherId); + teacher.setName(name); + teacher.setDepartment(department); + teacher.setContact(contact); + teacher.setPassword(password); + + assertEquals("ID应匹配", id, teacher.getId()); + assertEquals("教师工号应匹配", teacherId, teacher.getTeacherId()); + assertEquals("教师姓名应匹配", name, teacher.getName()); + assertEquals("所属部门应匹配", department, teacher.getDepartment()); + assertEquals("联系方式应匹配", contact, teacher.getContact()); + assertEquals("密码应匹配", password, teacher.getPassword()); + } +}