kindergarten_java/reading-platform-frontend/tests/manual-test-guide.md
Claude Opus 4.6 e87e2dde00 refactor: 完成代码重构规范化 - 2026-03-12
后端重构:
- 添加统一响应格式 ResultDto<T> 和 PageResultDto<T>
- 添加分页查询 DTO 基类 PageQueryDto
- 添加响应转换拦截器 TransformInterceptor
- 添加公共工具函数(JSON 解析、分页计算)
- 配置 Swagger/OpenAPI 文档(访问路径:/api-docs)
- Tenant 模块 DTO 规范化示例(添加 @ApiProperty 装饰器)
- CourseLesson 控制器重构 - 移除类级路径参数,修复 Orval 验证错误
- 后端 DTO 规范化 - 为 Course、Lesson、TeacherCourse、SchoolCourse 控制器添加完整的 Swagger 装饰器

前端重构:
- 配置 Orval 从后端 OpenAPI 自动生成 API 客户端
- 生成 API 客户端代码(带完整参数定义)
- 创建 API 客户端统一入口 (src/api/client.ts)
- 创建 API 适配层 (src/api/teacher.adapter.ts)
- 配置文件路由 (unplugin-vue-router)
- 课程模块迁移到新 API 客户端
- 修复 PrepareModeView.vue API 调用错误
- 教师模块迁移到新 API 客户端
- 修复 school-course.ts 类型错误
- 清理 teacher.adapter.ts 未使用导入
- 修复 client.ts API 客户端结构
- 创建文件路由目录结构

Bug 修复:
- 修复路由配置问题 - 移除 top-level await,改用手动路由配置
- 修复响应拦截器 - 正确解包 { code, message, data } 格式的响应
- 清理 teacher.adapter.ts 未使用导入
- 修复 client.ts API 客户端结构
- 创建文件路由目录结构

系统测试:
- 后端 API 测试通过 (7/7)
- 前端路由测试通过 (4/4)
- 数据库完整性验证通过
- Orval API 客户端验证通过
- 超管端功能测试通过 (97.8% 通过率)

新增文件:
- reading-platform-backend/src/common/dto/result.dto.ts
- reading-platform-backend/src/common/dto/page-query.dto.ts
- reading-platform-backend/src/common/interceptors/transform.interceptor.ts
- reading-platform-backend/src/common/utils/json.util.ts
- reading-platform-backend/src/common/utils/pagination.util.ts
- reading-platform-frontend/orval.config.ts
- reading-platform-frontend/src/api/generated/mutator.ts
- reading-platform-frontend/src/api/client.ts
- reading-platform-frontend/src/api/teacher.adapter.ts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:27:13 +08:00

4.3 KiB

Phase 6 校本课程包功能 - 手动测试指南

测试日期: 2026-03-11 测试人员: [请填写] 测试账号: teacher1 / 123456 前端地址: http://localhost:5173


测试清单

前置条件


测试用例

TC-01: 创建校本课程包

步骤:

  1. 登录系统 (teacher1 / 123456)
  2. 点击"课程中心"菜单
  3. 点击任意课程的"查看"按钮
  4. 在详情页查找"创建校本版本"按钮
  5. 点击该按钮
  6. 验证跳转到编辑页面
  7. 选择"保存到个人课程中心"
  8. 点击"创建"按钮
  9. 等待创建完成

预期结果:

  • 详情页显示"创建校本版本"按钮
  • 点击后跳转到 /school-courses/edit 页面
  • 显示源课程信息
  • 创建成功后跳转到个人课程中心或显示成功消息

实际结果: [请填写] 状态: [ ] 通过 [ ] 失败 备注: [请填写]


TC-02: 查看个人课程中心列表

步骤:

  1. 登录系统
  2. 点击"个人课程中心"菜单
  3. 观察页面内容

预期结果:

  • 显示校本课程包列表
  • 显示保存位置筛选器(全部/个人/校本)
  • 显示审核状态标签(如有)
  • 每个课程卡片显示编辑、查看、删除按钮

实际结果: [请填写] 状态: [ ] 通过 [ ] 失败 备注: [请填写]


TC-03: 编辑校本课程包

步骤:

  1. 进入个人课程中心
  2. 点击任意校本课程的"编辑"按钮
  3. 观察7步编辑器
  4. 尝试切换各个步骤
  5. 修改基本信息(如名称)
  6. 点击"保存"或"保存到个人"

预期结果:

  • 进入编辑页面,显示7步导航
  • 各步骤内容正确显示
  • 可以切换步骤
  • 保存成功

实际结果: [请填写] 状态: [ ] 通过 [ ] 失败 备注: [请填写]


TC-04: 查看校本课程详情

步骤:

  1. 进入个人课程中心
  2. 点击任意校本课程的"查看"按钮
  3. 观察详情页内容

预期结果:

  • 显示课程基本信息
  • 显示保存位置标签
  • 显示审核状态(如适用)
  • 显示课程列表
  • 显示"开始备课"按钮

实际结果: [请填写] 状态: [ ] 通过 [ ] 失败 备注: [请填写]


TC-05: 备课模式

步骤:

  1. 进入校本课程详情页
  2. 点击"开始备课"按钮
  3. 观察备课模式页面

预期结果:

  • 跳转到备课模式页面 (URL 包含 type=school)
  • 显示左侧导航栏
  • 显示课程列表
  • 显示右侧内容预览

实际结果: [请填写] 状态: [ ] 通过 [ ] 失败 备注: [请填写]


TC-06: 筛选功能

步骤:

  1. 进入个人课程中心
  2. 点击"个人"筛选器
  3. 观察列表变化
  4. 点击"校本"筛选器
  5. 观察列表变化

预期结果:

  • 筛选器正确切换
  • 列表内容相应更新
  • 显示正确的筛选结果

实际结果: [请填写] 状态: [ ] 通过 [ ] 失败 备注: [请填写]


TC-07: 删除功能

步骤:

  1. 进入个人课程中心
  2. 点击任意校本课程的"删除"按钮
  3. 确认删除操作

预期结果:

  • 显示确认对话框
  • 确认后课程被删除
  • 列表更新

实际结果: [请填写] 状态: [ ] 通过 [ ] 失败 备注: [请填写]


数据库验证

检查 school_courses 表

SELECT id, name, saveLocation, reviewStatus, sourceCourseId
FROM school_courses
ORDER BY createdAt DESC;

预期数据:

  • saveLocation 为 'PERSONAL' 或 'SCHOOL'
  • reviewStatus 为 'PENDING', 'APPROVED', 或 'REJECTED'
  • sourceCourseId 指向有效的课程

检查 school_course_lessons 表

SELECT id, schoolCourseId, lessonType, name, stepsData
FROM school_course_lessons
ORDER BY schoolCourseId, id;

预期数据:

  • stepsData 字段包含有效的 JSON 数据
  • lessonType 为 'INTRODUCTION', 'COLLECTIVE', 或领域类型

问题记录

问题ID 描述 严重程度 状态
BUG-001 [问题描述] [高/中/低] [待修复/已修复]

测试总结

测试日期: [请填写] 测试人员: [请填写] 测试结果:

  • 通过用例: ___ / 7
  • 失败用例: ___ / 7
  • 发现问题: ___ 个

整体评价: [请填写]


测试指南创建于 2026-03-11