本文档为 OpenCourse 团队测试文档之 ResourceManagerTest
测试的主要功能:
- 添加资源 (
addResource)- 正常添加成功
- 课程不存在抛出
IllegalArgumentException - 文件存储失败抛出
RuntimeException - 资源保存失败时文件存储回滚成功
- 文件回滚失败抛出
RuntimeException
- 删除资源 (
deleteResource)- 正常删除成功
- 管理员删除资源成功
- 资源不存在返回
false - 用户不是创作者且不是管理员返回
false - 资源删除失败抛出
RuntimeException - 文件删除失败抛出
RuntimeException
- 更新资源 (
updateResource) ( 未实现 )- 仅更新元数据 - 当前返回
null - 更新资源并上传新文件 - 当前返回
null - 更新不存在的资源 - 当前返回
null(应抛出IllegalArgumentException)
- 仅更新元数据 - 当前返回
- 获取资源 (
getResource)- 获取存在的资源
- 获取不存在的资源返回
null
- 按课程获取资源 (
getResourcesByCourse)- 获取指定课程的所有资源
- 课程无资源时返回空列表
- 按用户获取资源 (
getResourcesByUser)- 获取指定用户创建的所有资源
- 用户无资源时返回空列表
- 点赞资源 (
likeResource)- 用户未点赞时点赞成功返回
true - 用户已点赞时返回
false - 资源不存在抛出
IllegalArgumentException
- 用户未点赞时点赞成功返回
- 取消点赞资源 (
unlikeResource)- 用户已点赞时取消点赞成功返回
true - 用户未点赞时返回
false - 资源不存在抛出
IllegalArgumentException
- 用户已点赞时取消点赞成功返回
- 查看资源 (
viewResource)- 正常查看资源返回文件流
- 资源不存在抛出
IllegalArgumentException - 文件服务返回
null时返回null
- 总测试方法数: 29 个
- 已实现功能测试: 26 个
- 未实现功能测试: 3 个(标记为 NOT IMPLEMENTED)
- 使用
spy()和lenient()处理实体对象的ID获取 - 未实现的
updateResource方法当前返回null,测试验证此行为 - 所有异常情况都有对应的测试覆盖
- 文件操作包含完整的回滚机制测试
- 点赞/取消点赞逻辑通过
HistoryManager验证状态