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

3.7 KiB
Raw Blame History

小程序按钮与弹窗用例补全设计

日期: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 一致
  • 不扩大到真机执行本阶段范围