3.1 KiB
3.1 KiB
模块 5:异常态与防御性逻辑
复杂业务不能只测正常流。权限不足、接口失败、重复提交、非法状态流转都必须有明确处理。
空数据
接口失败
权限不足
重复提交
非法流转
工单不存在
异常态清单
| 场景 | 触发条件 | 前端表现 | 后端响应 | 验收 |
|---|---|---|---|---|
| 空列表 | 查询无结果 | 显示空状态 | 返回空数组 | 不显示报错 |
| 接口失败 | 服务异常 | 提示重试 | 5xx 或业务错误 | 页面不崩溃 |
| 权限不足 | 无权限操作 | 按钮不可见或提示无权限 | 403 | 不完成操作 |
| 重复提交 | 连续点击提交 | 按钮禁用或 loading | 拒绝重复请求 | 只生成一条记录 |
| 非法流转 | closed -> processing | 提示非法状态 | 业务错误码 | 状态不变 |
| 工单不存在 | 错误 ID | 显示不存在 | 404 或业务错误 | 页面不崩溃 |
最小测试集
| 编号 | 场景 | 操作 | 预期 |
|---|---|---|---|
| E01 | 无权限删除 | 研发账号请求删除接口 | 返回拒绝 |
| E02 | 非法状态流转 | closed -> processing | 状态不变 |
| E03 | 重复提交验证 | 连续点击提交验证 | 只成功一次 |
| E04 | 工单不存在 | 查询错误 ID | 页面不崩 |
| E05 | 驳回缺少原因 | remark 为空 | 返回参数错误 |
| E06 | 看板无数据 | 无数据范围 | 显示空态 |
防御性修改边界
| 层级 | 修改重点 |
|---|---|
| 前端 | loading、禁用按钮、空态、错误提示 |
| 后端 Controller | 参数校验、权限校验 |
| Service | 状态校验、幂等、防重复、事务 |
| 审计日志 | 避免重复有效记录 |
不要为了一个工单异常态,重写全局请求库或无关业务模块。