Files
shanxia2.0/docs/superpowers/specs/2026-07-18-mp-button-dialog-cases-design.md
T
2026-07-18 09:14:02 +08:00

88 lines
3.7 KiB
Markdown
Raw 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.
# 小程序按钮与弹窗用例补全设计
> 日期:2026-07-18
> 状态:已确认(用户选组织方式 C + 源码静态盘点方案 1)
> 范围:`miniprogram` H5/小程序四模块 + 壳层
## 1. 背景与问题
现有 `miniprogram-e2e/cases/00–04` 用例偏重页面与字段,**按钮与弹窗内按钮未做门禁式穷尽覆盖**。
人类测试工程师要求:每个界面可点控件都有用例;点击后若出现弹窗 / ActionSheet / Sheet,则**层内每个按钮**也要有独立用例。
## 2. 目标
1. 建立总清单门禁:`BUTTON-DIALOG-INVENTORY.md`,无 `TODO` 才算「按钮用例写完整」。
2. 详细步骤写在各模块用例文件(`00-shell`…`04-pl`),总清单用用例 ID 回链。
3. 仍遵守「一次只测一个界面」的执行节奏(第二步执行时)。
## 3. 非目标
- 本阶段不执行自动化点测、不改业务代码。
- 不覆盖灰卡背后的未实现业务页内部按钮(灰卡仅测 Toast「本期暂未开放」)。
## 4. 方法(方案 1)
1. 静态扫描 `pages/**/*.vue` + `components/mp-approver-picker`。
2. 识别:页头/底栏/卡片按钮、链接、`uni.showModal`、`uni.showActionSheet`、自定义弹窗、Sheet。
3. 写入总清单;弹层内每个按钮单独成行。
4. 为每行分配/回填用例 ID;缺则 `TODO`。
5. 按界面把 `TODO` 补进模块用例文件后,更新清单状态。
## 5. 总清单字段
| 字段 | 说明 |
|------|------|
| INV-ID | 清单行号,如 `INV-LGN-01` |
| 模块 / 界面 / 路径 | 定位 |
| 触发控件 | 准确文案 |
| 控件类型 | 页头/底栏/卡片/导航/勾选/快捷卡/上传… |
| 弹出层类型 | 无 / showModal / ActionSheet / 自定义弹窗 / Sheet |
| 弹层标题 | 原文 |
| 层内按钮 | 本行关注的那一个按钮文案 |
| 显示条件 | 状态/Tab 等 |
| 用例 ID | 已写则填;否则 `TODO` |
| 最小集 | 见 §6 |
## 6. 有弹层时的最小用例集(门禁)
对每个「触发控件 → 弹层」组合,至少包含:
| # | 用例意图 |
|---|----------|
| 1 | 点击触发 → 弹层出现(标题/关键文案正确) |
| 2 | 点取消/否 → 关闭且业务不变 |
| 3 | 点确认/是/通过等 → 成功路径(或校验失败提示) |
| 4 | 若遮罩可关 → 点遮罩等同取消(一条) |
| 5 | ActionSheet → **每个 item** 至少一条 |
| 6 | Sheet → 取消、确定、未选确定校验 各至少一条 |
无弹层的按钮:至少「点击 → 预期导航/提交/Toast」一条;写操作另补失败/连点等按模块文件既有标准。
## 7. 交付物
| 路径 | 说明 |
|------|------|
| `docs/superpowers/specs/2026-07-18-mp-button-dialog-cases-design.md` | 本文 |
| `miniprogram-e2e/cases/BUTTON-DIALOG-INVENTORY.md` | 总清单门禁 |
| `miniprogram-e2e/cases/00–04*.md` | 补齐详细用例(清单驱动,分批) |
| `miniprogram-e2e/cases/README.md` / `PROGRESS.md` | 索引更新 |
## 8. 完成定义(DoD)
- [ ] 总清单覆盖启用业务页 + 壳层全部可点主操作与全部弹层按钮行
- [ ] 清单中无 `TODO`(均已回链用例 ID)
- [ ] 模块文件中存在对应该 ID 的可执行步骤(预置/步骤/预期)
- [ ] 评审确认后,才进入第二步「按界面执行」
## 9. 风险
- 条件按钮(如仅 draft 显示)需造数才能执行,用例仍须先写全。
- `showModal` 确认键系统默认为「确定」,用例文案以真机/H5 实际为准。
- 费用项目 ActionSheet 的 item 动态来自接口,清单记「动态 item」,用例要求「至少选一项 + 无数据 Toast」。
## 10. 自检
- 无 TBD/占位未解释
- 与用户已选 C + 方案 1 一致
- 不扩大到真机执行本阶段范围