# 我的预约（移动端）— 测试用例

> 依据：`doc/app/我的预约/我的预约接口说明.md`  
> **接口 Base Path**：`/app/myAppointment`；需登录。

---

## 一、单元 / 接口测试用例

| 用例编号 | 测试项 | 测试类型 | 前置条件 | 测试步骤 | 预期结果 |
| --- | --- | --- | --- | --- | --- |
| APP-WDYY-UT-001 | 提交评价不写 expert_rating | 单元测试 | 专家预约已完成 | `submitAppointmentReview` | 仅插入 `biz_service_appointment_review`；不调用 `updateExpertRating` |
| APP-WDYY-API-001 | 我的预约列表 | 接口测试 | 已登录 | `GET /list?providerType&statusTab` | 分页列表；`hasReview` 等字段正确 |
| APP-WDYY-API-002 | 取消预约 | 接口测试 | 可取消状态 | `POST /cancel/{id}` | `status=3` |
| APP-WDYY-API-003 | 提交评价 | 接口测试 | 专家、已完成、未评价 | `POST /{id}/review` Body 三星级+summary | 成功；`expert_rating` 不变 |
| APP-WDYY-API-004 | 重复评价 | 接口测试 | 已评价 | 再次 `POST /review` | 失败；已评价 |
| APP-WDYY-JOB-001 | 专家评分定时同步 | 定时任务 | 执行 `sql/biz_sys_job_expert_rating_sync.sql` 并启用 | 23:00 触发 `expertRatingSyncTask.syncExpertRatings` | 按评价重算 `biz_tech_resource.expert_rating` |

**评分公式（JOB-001）**：关联 review + appointment（`provider_type=3`），`(Σ到场准时+Σ服务态度+Σ指导效果)/3`，保留 1 位小数。

---

## 二、修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 初版：列表/取消/评价；评价不即时更新 expert_rating；定时任务说明 |
