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

6.4 KiB
Raw Blame History

家长端评价功能测试指南

一、准备工作

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

测试步骤:

  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. 检查数据库

-- 查询评价记录
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响应正常
  • 无报错信息
  • 用户体验流畅