Files
petwash/完成对话框测试指南.md
GukSang.Jin 9c66b6cd82
2026-03-03 16:55:02 +08:00

4.2 KiB
Raw Blame History

完成对话框自动关闭功能 - 测试指南

快速测试步骤

1. 启动应用

cd PetWashControl
dotnet run

2. 完整流程测试

  1. 在待机界面点击"请取走宠物"按钮
  2. 选择任意套餐(如"基础清洗"
  3. 点击"开始洗护"
  4. 等待洗护流程完成约2-3分钟
  5. 观察完成对话框

3. 快速模拟测试

如果想快速测试对话框功能,可以临时修改代码:

临时修改 MainViewModel.cs

StartWashingCommand 方法中,找到调用 SimulateWashingProcessAsync() 的地方, 直接调用 CompleteWashingAsync() 来快速触发完成对话框。

// 临时测试代码
await CompleteWashingAsync();
return;

4. 验证清单

对话框显示

  • 对话框居中显示在屏幕中央
  • 显示绿色对勾图标
  • 显示"清洗完成!"文本
  • 显示"感谢使用无人自动洗宠机"文本
  • 显示倒计时文本"30秒后自动返回首页"
  • 显示蓝色"确定"按钮

倒计时功能

  • 倒计时从30秒开始
  • 每秒递减1秒
  • 文本实时更新29秒、28秒...
  • 倒计时到0秒时自动关闭对话框

手动关闭功能

  • 点击"确定"按钮立即关闭对话框
  • 倒计时停止
  • 不等待30秒

关闭后行为

  • 对话框关闭后自动返回待机界面
  • 显示轮播图
  • 显示"请取走宠物"按钮
  • 温度显示正常
  • 液位显示正常

UI样式

  • 圆角边框显示正常
  • 阴影效果显示正常
  • 按钮悬停效果正常(颜色变深)
  • 整体布局美观

5. 测试场景

场景1自动关闭

  1. 完成洗护流程
  2. 不点击任何按钮
  3. 等待30秒
  4. 验证对话框自动关闭并返回首页

场景2手动关闭

  1. 完成洗护流程
  2. 在倒计时期间点击"确定"按钮
  3. 验证对话框立即关闭并返回首页

场景3多次测试

  1. 重复执行洗护流程3次
  2. 每次使用不同的关闭方式(自动/手动)
  3. 验证每次都能正常工作

6. 性能验证

  • 对话框打开速度快(<100ms
  • 倒计时更新流畅,无卡顿
  • 关闭后无内存泄漏
  • 定时器正确停止

7. 异常情况测试

测试1快速点击

  • 在对话框显示后立即快速点击"确定"按钮多次
  • 验证不会出现异常

测试2窗口拖动

  • 尝试拖动对话框(应该无法拖动,因为设置了居中且无标题栏)
  • 验证对话框保持居中

测试3Alt+F4关闭

  • 按下 Alt+F4 尝试关闭对话框
  • 验证对话框正常关闭并返回首页

8. 日志验证

检查日志文件,确认以下信息:

清洗完成订单ID: xxx
订单流程完成

9. 数据库验证

检查订单状态是否正确更新为"已完成"

# 如果使用SQLite
sqlite3 PetWash.Api/petwash.db "SELECT * FROM Orders ORDER BY CreatedAt DESC LIMIT 1;"

验证最新订单的 Status 字段为 "Completed"。

10. MQTT消息验证

如果启用了MQTT验证是否发送了完成消息

{
  "status": "completed",
  "orderId": "xxx",
  "timestamp": "2026-02-27T..."
}

预期结果

所有测试项通过 对话框显示美观 倒计时功能正常 自动关闭功能正常 手动关闭功能正常 返回首页功能正常 无异常或错误

问题排查

问题1对话框不显示

  • 检查 MainViewModel.cs 中是否正确调用了 new Views.CompletionDialog()
  • 检查 XAML 文件是否正确编译

问题2倒计时不更新

  • 检查 DispatcherTimer 是否正确启动
  • 检查 Tick 事件是否正确绑定

问题3不能自动关闭

  • 检查倒计时逻辑中的 Close() 方法是否被调用
  • 检查是否有异常阻止了关闭

问题4关闭后不返回首页

  • 检查 CompleteWashingAsync 方法中的 BackToIdle() 调用
  • 检查 CurrentOrder 和 SelectedPackage 是否正确清空

成功标准

  • 对话框在洗护完成后正确显示
  • 倒计时从30秒准确递减到0秒
  • 30秒后自动关闭并返回首页
  • 点击"确定"按钮立即关闭并返回首页
  • UI美观用户体验良好
  • 无内存泄漏或性能问题

测试完成时间

预计测试时间10-15分钟