peixue-dev/peidu/docs/fixes/2026-01-23-家长端评价功能实现/🧪测试指南.md

331 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 家长端评价功能测试指南
## 一、准备工作
### 1. 执行数据库脚本
```bash
# Windows
cd peidu
mysql -u root -p peidu < sql/create_review_table_2026-01-23.sql
# 或者在MySQL客户端中执行
USE peidu;
SOURCE sql/create_review_table_2026-01-23.sql;
```
### 2. 重新编译后端
```bash
cd peidu/backend
mvn clean compile
```
### 3. 重新编译前端
```bash
cd peidu/uniapp
npm run build:mp-weixin
```
### 4. 重启服务
```bash
# 重启后端服务
# 刷新微信开发者工具
```
---
## 二、测试场景
### 场景1提交评价
**前置条件:**
- 有已完成的订单status=4
- 订单未评价reviewed=false
**测试步骤:**
1. 登录家长账号
2. 进入"我的预约"页面
3. 找到已完成的订单
4. 点击订单进入详情页
5. 确认显示"去评价"按钮
6. 点击"去评价"按钮
7. 进入评价提交页面
**验证点:**
- ✅ 订单信息正确显示
- ✅ 默认评分为5星
- ✅ 可以点击星星修改评分
- ✅ 综合评分自动计算
- ✅ 可以输入评价内容
- ✅ 字数统计正确0/200
- ✅ 可以上传图片最多9张
- ✅ 可以删除已上传的图片
- ✅ 可以选择匿名评价
**提交评价:**
8. 设置评分服务态度5星、教学质量5星、准时性5星
9. 输入评价内容:"陪伴员非常专业,孩子很喜欢!"
10. 上传1-2张图片可选
11. 不选择匿名
12. 点击"提交评价"按钮
**验证点:**
- ✅ 显示"提交中..."
- ✅ 提交成功后显示"评价成功"
- ✅ 自动返回订单详情页
- ✅ "去评价"按钮变为"再次预约"
---
### 场景2查看我的评价
**测试步骤:**
1. 进入个人中心
2. 找到"我的评价"菜单项
3. 点击进入评价列表页
**验证点:**
- ✅ 显示刚才提交的评价
- ✅ 订单信息正确(服务名称、服务时间)
- ✅ 陪伴员姓名正确
- ✅ 评分星级正确显示
- ✅ 综合评分正确5.0分)
- ✅ 评价内容完整显示
- ✅ 图片正确显示(如果有)
- ✅ 评价时间正确(刚刚)
- ✅ 不显示匿名标签(因为未选择匿名)
**下拉刷新:**
4. 下拉列表
5. 释放刷新
**验证点:**
- ✅ 显示刷新动画
- ✅ 数据重新加载
- ✅ 刷新完成
---
### 场景3重复评价验证
**测试步骤:**
1. 返回订单详情页
2. 确认显示"再次预约"按钮(不是"去评价"
3. 尝试通过URL直接访问评价页面
**验证点:**
- ✅ 已评价订单不显示"去评价"按钮
- ✅ 提交评价时提示"订单已评价,不能重复评价"
---
### 场景4匿名评价
**前置条件:**
- 有另一个已完成且未评价的订单
**测试步骤:**
1. 进入订单详情
2. 点击"去评价"
3. 填写评分和内容
4. **勾选"匿名评价"**
5. 提交评价
6. 进入"我的评价"列表
**验证点:**
- ✅ 评价列表中显示"匿名"标签
- ✅ 陪伴员端查看时不显示用户昵称和头像
---
### 场景5图片上传和预览
**测试步骤:**
1. 进入评价提交页面
2. 点击"添加图片"
3. 选择相册或拍照
4. 选择1-3张图片
5. 查看图片预览
6. 点击删除按钮删除一张图片
7. 继续添加图片直到9张
8. 尝试添加第10张图片
**验证点:**
- ✅ 可以选择相册或拍照
- ✅ 图片正确显示
- ✅ 可以删除图片
- ✅ 达到9张后不显示"添加图片"按钮
- ✅ 提交后图片正确保存
**图片预览:**
9. 进入"我的评价"列表
10. 点击评价中的图片
**验证点:**
- ✅ 打开图片预览
- ✅ 可以左右滑动查看
- ✅ 可以缩放图片
---
### 场景6空状态
**测试步骤:**
1. 使用新账号登录(没有评价记录)
2. 进入"我的评价"页面
**验证点:**
- ✅ 显示空状态图标
- ✅ 显示"暂无评价记录"
- ✅ 显示提示文字"完成服务后可以进行评价"
---
### 场景7陪伴员端查看评价
**测试步骤:**
1. 登录陪伴员账号
2. 查看评价列表(需要实现陪伴员端评价列表页面)
3. 查看家长提交的评价
**验证点:**
- ✅ 可以看到评价内容
- ✅ 非匿名评价显示家长昵称和头像
- ✅ 匿名评价显示"匿名用户"
- ✅ 可以回复评价
---
## 三、数据验证
### 1. 检查数据库
```sql
-- 查询评价记录
SELECT
r.id,
r.order_id,
o.order_no,
r.user_id,
r.teacher_id,
r.service_score,
r.quality_score,
r.punctuality_score,
r.overall_score,
r.content,
r.is_anonymous,
r.create_time
FROM review r
LEFT JOIN `order` o ON r.order_id = o.id
ORDER BY r.create_time DESC
LIMIT 10;
-- 检查订单评价状态
SELECT
id,
order_no,
status,
reviewed
FROM `order`
WHERE status = 4
ORDER BY id DESC
LIMIT 10;
-- 统计陪伴员评价数据
SELECT
teacher_id,
COUNT(*) as review_count,
AVG(overall_score) as avg_score,
AVG(service_score) as avg_service_score,
AVG(quality_score) as avg_quality_score,
AVG(punctuality_score) as avg_punctuality_score
FROM review
WHERE deleted = 0 AND status = 1
GROUP BY teacher_id;
```
### 2. 检查API响应
**提交评价API**
```
POST http://localhost:8080/api/review/submit
Content-Type: application/json
{
"orderId": 102,
"serviceScore": 5,
"qualityScore": 5,
"punctualityScore": 5,
"content": "测试评价内容",
"images": [],
"isAnonymous": false
}
```
**查询评价列表API**
```
GET http://localhost:8080/api/review/my-list
```
---
## 四、常见问题
### 1. 提交评价失败
**可能原因:**
- 订单不存在
- 订单未完成
- 订单已评价
- 评分不在1-5范围内
**解决方法:**
- 检查订单状态
- 检查订单是否已评价
- 检查评分参数
### 2. 评价列表为空
**可能原因:**
- 没有评价记录
- 用户ID不匹配
- 数据库查询失败
**解决方法:**
- 先提交一条评价
- 检查用户ID
- 查看后端日志
### 3. 图片上传失败
**可能原因:**
- 图片过大
- 图片格式不支持
- 网络问题
**解决方法:**
- 压缩图片
- 使用支持的格式jpg、png
- 检查网络连接
---
## 五、测试数据
### 测试账号
- 家长账号userId=1
- 陪伴员账号teacherId=1
### 测试订单
- 订单ID102已完成未评价
- 订单ID103已完成未评价
- 订单ID104已完成未评价
---
**测试完成标准:**
- ✅ 所有测试场景通过
- ✅ 数据库数据正确
- ✅ API响应正常
- ✅ 无报错信息
- ✅ 用户体验流畅