本文档为 OpenCourse 团队测试文档之 CourseRepoTest
测试的主要功能:
-
上下文加载 (
contextLoads)- 验证 CourseRepo 和 TestEntityManager 正确注入
-
按名称模糊查找课程 (
findByNameContainingIgnoreCaseOrderByNameAsc)- 存在匹配课程时返回按名称升序排列的匹配列表
- 无匹配结果时返回空列表
- 大小写不敏感匹配成功
- 空字符串搜索时返回所有课程
-
按课程代码查找 (
findByCode)- 课程存在时返回对应课程
- 课程不存在时返回空 Optional
- 大小写敏感匹配验证
-
检查课程代码是否存在 (
existsByCode)- 课程存在时返回 true
- 课程不存在时返回 false
- 大小写敏感验证
-
按部门ID查找课程 (
findByDepartmentId)- 存在课程时返回该部门所有课程列表
- 部门无课程时返回空列表
- 验证不同部门的课程分布
-
按课程类型查找 (
findByCourseType)- 按通识必修课类型查找
- 按通识选修课类型查找
- 按专业必修课类型查找
- 按专业选修课类型查找
- 指定类型无课程时返回空列表
-
按部门和课程类型联合查找 (
findByDepartmentIdAndCourseType)- 存在匹配课程时返回列表
- 无匹配课程时返回空列表
- 验证多种部门和类型组合
-
按名称升序查找所有课程 (
findAllByOrderByNameAsc)- 返回按字母顺序排序的所有课程
- 无课程时返回空列表
-
课程数据完整性验证 (
testCourseDataIntegrity)- 验证课程的所有字段正确保存和读取
-
课程类型枚举功能验证 (
testCourseTypeEnumFunctionality)- 验证课程类型的 ID、名称、描述字段
- 验证不同课程类型的正确映射
-
课程类型按ID获取 (
testCourseTypeGetById)- 正确的ID返回对应类型
- 不存在的ID返回 null
-
部门关系验证 (
testDepartmentRelationship)- 验证课程与部门的正确关联
-
学分精度验证 (
testCreditsDecimalPrecision)- 验证 BigDecimal 学分的精度保存
-
课程toString方法验证 (
testCourseToString)- 验证课程对象的字符串表示包含关键信息
-
边界条件测试 (
testEdgeCases)- 空字符串搜索处理
- 单字符搜索处理
- 特殊字符搜索处理
-
课程类型分布验证 (
testCourseTypeDistribution)- 验证各种课程类型的数量分布正确
- 总测试方法数: 25 个
- 基础 CRUD 操作: 3 个
- 查询方法测试: 12 个
- 数据关系测试: 4 个
- 边界条件测试: 3 个
- 数据完整性测试: 3 个
testFindByNameContainingIgnoreCase_*(4个): 测试模糊查找和排序testFindByCode_*(3个): 测试按代码精确查找testExistsByCode_*(2个): 测试代码存在性检查testFindByDepartmentId_*(2个): 测试按部门查找testFindByCourseType_*(2个): 测试按课程类型查找testFindByDepartmentIdAndCourseType_*(2个): 测试联合条件查找testFindAllByOrderByNameAsc_*(2个): 测试排序查询
testDepartmentRelationship_*(1个): 测试部门关联testCourseTypeEnumFunctionality_*(1个): 测试枚举关系testCourseTypeGetById_*(1个): 测试枚举ID映射testCourseTypeDistribution_*(1个): 测试类型分布
testCourseDataIntegrity_*(1个): 测试完整字段验证testCreditsDecimalPrecision_*(1个): 测试精度保存testCourseToString_*(1个): 测试对象表示
- 空值和特殊字符处理 (1个)
- 不存在记录处理 (2个)
- 极值情况处理 (1个)
- 查询操作 (2个): 各种条件下的查询
- 删除操作 (1个): 测试删除功能
- Spring Data JPA
- H2 内存数据库 (测试环境)
- AssertJ 断言库
- JUnit 5 测试框架
- BigDecimal 精度计算
- CourseType 自定义枚举类