# 测试策略 ## 首期选择 首期以 Playwright 端到端测试为主。金额精度、汇率换算和同步合并等不适合只靠界面验证的纯逻辑,应补充针对性单元测试。 ## 原则 - 测试真实用户路径,不测试内部实现。 - 优先覆盖高风险流程。 - 使用手机视口作为主要测试环境。 - 测试数据可重复创建和清理。 - 不为早期快速变化的组件写细碎测试。 ## 首期覆盖 ### 记账 - 新增一笔收入。 - 新增一笔支出。 - 使用不同币种记账。 - 编辑账目。 - 删除账目。 - 刷新页面后账目仍存在。 ### 账本权限 - 用户只能看到自己有权限的账本。 - 独享账本不对其他用户可见。 - owner 可以生成邀请。 - 被邀请成员加入后可以看到账本。 ### 离线 - 离线时可以新增账目。 - 离线且汇率服务不可用时仍可新增外币账目。 - 离线刷新后应用仍能打开。 - 恢复网络后触发同步。 ### 同步 - 同一操作重复提交不会重复记账。 - 多设备拉取后能看到同一账本流水。 - 同一账目离线冲突时最后写入胜出。 - 待换算和临时汇率账目恢复网络后可以回补。 ### 汇率与统计 - 按记账日期保存历史汇率快照。 - 外部汇率服务失败时使用缓存或进入待换算状态。 - 人民币汇总不重复调用外部汇率服务。 - 多账本关联的同一账目在跨账本统计中只计算一次。 - 不同最小单位和金额舍入规则通过单元测试覆盖。 ## 暂不覆盖 - 组件测试。 - 大规模性能测试。 - 视觉回归测试。 ## 推荐命令 ```bash npm run test:e2e ```