6.4 KiB
6.4 KiB
家长端评价功能测试指南
一、准备工作
1. 执行数据库脚本
# 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. 重新编译后端
cd peidu/backend
mvn clean compile
3. 重新编译前端
cd peidu/uniapp
npm run build:mp-weixin
4. 重启服务
# 重启后端服务
# 刷新微信开发者工具
二、测试场景
场景1:提交评价
前置条件:
- 有已完成的订单(status=4)
- 订单未评价(reviewed=false)
测试步骤:
- 登录家长账号
- 进入"我的预约"页面
- 找到已完成的订单
- 点击订单进入详情页
- 确认显示"去评价"按钮
- 点击"去评价"按钮
- 进入评价提交页面
验证点:
- ✅ 订单信息正确显示
- ✅ 默认评分为5星
- ✅ 可以点击星星修改评分
- ✅ 综合评分自动计算
- ✅ 可以输入评价内容
- ✅ 字数统计正确(0/200)
- ✅ 可以上传图片(最多9张)
- ✅ 可以删除已上传的图片
- ✅ 可以选择匿名评价
提交评价: 8. 设置评分:服务态度5星、教学质量5星、准时性5星 9. 输入评价内容:"陪伴员非常专业,孩子很喜欢!" 10. 上传1-2张图片(可选) 11. 不选择匿名 12. 点击"提交评价"按钮
验证点:
- ✅ 显示"提交中..."
- ✅ 提交成功后显示"评价成功"
- ✅ 自动返回订单详情页
- ✅ "去评价"按钮变为"再次预约"
场景2:查看我的评价
测试步骤:
- 进入个人中心
- 找到"我的评价"菜单项
- 点击进入评价列表页
验证点:
- ✅ 显示刚才提交的评价
- ✅ 订单信息正确(服务名称、服务时间)
- ✅ 陪伴员姓名正确
- ✅ 评分星级正确显示
- ✅ 综合评分正确(5.0分)
- ✅ 评价内容完整显示
- ✅ 图片正确显示(如果有)
- ✅ 评价时间正确(刚刚)
- ✅ 不显示匿名标签(因为未选择匿名)
下拉刷新: 4. 下拉列表 5. 释放刷新
验证点:
- ✅ 显示刷新动画
- ✅ 数据重新加载
- ✅ 刷新完成
场景3:重复评价验证
测试步骤:
- 返回订单详情页
- 确认显示"再次预约"按钮(不是"去评价")
- 尝试通过URL直接访问评价页面
验证点:
- ✅ 已评价订单不显示"去评价"按钮
- ✅ 提交评价时提示"订单已评价,不能重复评价"
场景4:匿名评价
前置条件:
- 有另一个已完成且未评价的订单
测试步骤:
- 进入订单详情
- 点击"去评价"
- 填写评分和内容
- 勾选"匿名评价"
- 提交评价
- 进入"我的评价"列表
验证点:
- ✅ 评价列表中显示"匿名"标签
- ✅ 陪伴员端查看时不显示用户昵称和头像
场景5:图片上传和预览
测试步骤:
- 进入评价提交页面
- 点击"添加图片"
- 选择相册或拍照
- 选择1-3张图片
- 查看图片预览
- 点击删除按钮删除一张图片
- 继续添加图片直到9张
- 尝试添加第10张图片
验证点:
- ✅ 可以选择相册或拍照
- ✅ 图片正确显示
- ✅ 可以删除图片
- ✅ 达到9张后不显示"添加图片"按钮
- ✅ 提交后图片正确保存
图片预览: 9. 进入"我的评价"列表 10. 点击评价中的图片
验证点:
- ✅ 打开图片预览
- ✅ 可以左右滑动查看
- ✅ 可以缩放图片
场景6:空状态
测试步骤:
- 使用新账号登录(没有评价记录)
- 进入"我的评价"页面
验证点:
- ✅ 显示空状态图标
- ✅ 显示"暂无评价记录"
- ✅ 显示提示文字"完成服务后可以进行评价"
场景7:陪伴员端查看评价
测试步骤:
- 登录陪伴员账号
- 查看评价列表(需要实现陪伴员端评价列表页面)
- 查看家长提交的评价
验证点:
- ✅ 可以看到评价内容
- ✅ 非匿名评价显示家长昵称和头像
- ✅ 匿名评价显示"匿名用户"
- ✅ 可以回复评价
三、数据验证
1. 检查数据库
-- 查询评价记录
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
测试订单
- 订单ID:102(已完成,未评价)
- 订单ID:103(已完成,未评价)
- 订单ID:104(已完成,未评价)
测试完成标准:
- ✅ 所有测试场景通过
- ✅ 数据库数据正确
- ✅ API响应正常
- ✅ 无报错信息
- ✅ 用户体验流畅