test: add unit tests for model class

This commit is contained in:
seahi 2024-12-18 08:53:25 +08:00
parent fb591545dc
commit b01028a13f
3 changed files with 145 additions and 0 deletions

View File

@ -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);
}
}

View File

@ -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());
}
}

View File

@ -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());
}
}