
# UniLife 系统功能验收测试文档

## 1. UniLife系统功能模块验收测试

### 1.1 用户系统验收测试（UserModule）

UniLife 的用户系统模块是平台使用的基础，支持用户注册、登录、信息管理及权限控制，确保身份合法、安全访问平台资源。

#### 1.1.1 测试用例

1. **测试用例名称**：用户注册功能测试  
   - 目的：验证用户是否可通过学校邮箱成功注册账户。  
   - 前置条件：学校邮箱地址未注册过系统账户。  
   - 测试数据：有效邮箱、密码、昵称、学号等注册信息。  
   - 执行步骤：
     1. 向 `/users/register` 发起POST请求。
     2. 提交注册数据。
   - 期望结果：返回状态码200，提示“注册成功”，系统生成新用户ID并写入数据库。

2. **测试用例名称**：邮箱验证码登录测试  
   - 目的：验证用户可通过邮箱验证码方式登录。  
   - 前置条件：邮箱已注册；验证码服务正常。  
   - 测试数据：合法邮箱，匹配验证码。  
   - 执行步骤：
     1. 请求 `/users/code` 接口获取验证码；
     2. 使用验证码通过 `/users/login/code` 登录。  
   - 期望结果：系统返回token及用户信息，状态为“登录成功”。

#### 1.1.2 验收标准

- 用户注册流程无异常，注册信息写入数据库。
- 邮箱验证码登录流程安全、成功率达100%，验证码有效期控制合理。

#### 1.1.3 验收步骤

1. 使用有效邮箱进行注册，确认响应数据结构完整、用户信息入库成功；
2. 请求验证码并完成登录，检查返回token和用户信息结构完整。

---

### 1.2 课表管理模块验收测试（ScheduleModule）

课表管理支持导入课程安排并整合至个人行程，是时间管理的核心组件。

#### 1.2.1 测试用例

1. **测试用例名称**：课表导入功能测试  
   - 目的：测试用户是否可导入课程表数据。  
   - 前置条件：用户已登录。  
   - 测试数据：标准课程JSON数据，包含课程名、时间、地点等字段。  
   - 执行步骤：
     1. 调用 `/schedule/import` 接口提交数据。
   - 期望结果：课程信息被正确解析并写入用户课表视图。

2. **测试用例名称**：课表提醒功能测试  
   - 目的：测试是否能按时间提醒用户上课。  
   - 前置条件：系统时间模拟到课程开始前10分钟。  
   - 测试数据：课程时间与提醒设置。  
   - 执行步骤：
     1. 启用提醒服务；
     2. 等待触发时间；
   - 期望结果：系统触发提醒通知，包含课程名、时间、地点。

#### 1.2.2 验收标准

- 导入功能兼容常见课程数据格式；
- 所有课程数据完整显示；
- 提醒功能按时间精准触发，无冗余通知。

#### 1.2.3 验收步骤

1. 模拟课程数据上传，观察课程表渲染及存储状态；
2. 检查提醒是否按预设时间推送并通知用户。

---

### 1.3 作业共享模块验收测试（AssignmentSharing）

支持上传、查询与筛选作业文档，提升学习协作与信息共享效率。

#### 1.3.1 测试用例

1. **测试用例名称**：作业上传功能测试  
   - 目的：验证作业上传接口是否稳定、支持多格式。  
   - 前置条件：用户登录状态；课程已选。  
   - 测试数据：PDF、Word等格式作业文件。  
   - 执行步骤：
     1. 调用 `/assignment/upload` 接口，上传文件并附加课程ID、作业类型。  
   - 期望结果：返回上传成功提示，作业入库，前端可展示。

2. **测试用例名称**：按关键词查询作业  
   - 目的：验证作业查询功能可按课程名、关键词、提交时间检索。  
   - 前置条件：系统已有多份作业文档。  
   - 测试数据：关键词如“线性代数”、“实验报告”。  
   - 执行步骤：
     1. 访问 `/assignment/search?keyword=线性代数`。  
   - 期望结果：返回符合关键词的作业文件，信息完整展示。

#### 1.3.2 验收标准

- 文件上传稳定，存储路径正确；
- 文件支持多种格式（PDF、Word）；
- 查询功能响应快、结果准确。

#### 1.3.3 验收步骤

1. 上传多类型作业文件，检查前端渲染与后端数据库记录；
2. 多轮查询测试，验证关键词、课程名筛选功能。

---

### 1.4 AI学习辅助模块验收测试（AIScheduler）

此模块结合课表与任务数据，借助大模型制定学习计划、发送智能提醒。

#### 1.4.1 测试用例

1. **测试用例名称**：AI制定学习计划测试  
   - 目的：验证是否能根据课表、作业量自动生成学习计划。  
   - 前置条件：已有课表数据及作业清单。  
   - 测试数据：课程表+作业截止时间数据。  
   - 执行步骤：
     1. 调用 `POST /ai/plan`，提交用户当前日程；
     2. 查看返回的学习任务清单。  
   - 期望结果：返回合理学习时间分配与推荐学习任务。

#### 1.4.2 验收标准

- 学习计划生成时间 ≤ 5 秒；
- 返回的任务清单结构完整、覆盖率高；
- 提醒频率合理，无骚扰式弹窗。

#### 1.4.3 验收步骤

1. 使用指定数据调用生成接口；
2. 验证学习任务合理性及个性化程度。

---

### 1.5 积分系统验收测试（PointSystem）

积分系统通过行为激励提升活跃度，积分可兑换特权资源。

#### 1.5.1 测试用例

1. **测试用例名称**：发帖积分累积测试  
   - 目的：测试发帖行为是否会产生积分变化。  
   - 前置条件：用户已登录。  
   - 测试数据：用户当前积分记录。  
   - 执行步骤：
     1. 用户发布新帖子；
     2. 查询 `/users/points`。  
   - 期望结果：积分增加，系统记录该行为。

2. **测试用例名称**：积分兑换操作测试  
   - 目的：测试是否可使用积分兑换论坛特权（如置顶、下载权限）。  
   - 前置条件：用户积分余额满足兑换条件。  
   - 执行步骤：
     1. 调用 `/points/redeem` 接口；
     2. 选择特权项目。  
   - 期望结果：扣除积分、功能权限生效。

#### 1.5.2 验收标准

- 行为触发积分变动及时；
- 积分记录可追溯；
- 兑换流程顺畅，权限变更即时生效。

#### 1.5.3 验收步骤

1. 操作多项积分触发行为；
2. 查看积分变化与记录；
3. 执行一次积分兑换，验证权限变更。
