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

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

---

## 测试清单

### 前置条件
- [x] 前端服务运行 (http://localhost:5173)
- [x] 后端服务运行 (http://localhost:3000)
- [x] 数据库连接正常

---

## 测试用例

### 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 表

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

**预期数据:**
- saveLocation 为 'PERSONAL' 或 'SCHOOL'
- reviewStatus 为 'PENDING', 'APPROVED', 或 'REJECTED'
- sourceCourseId 指向有效的课程

### 检查 school_course_lessons 表

```sql
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*
