共同富裕成果 — 测试用例
依据:共同富裕成果功能需求.md、共同富裕成果技术方案.md
接口 Base Path(示例):/commonProsperity/achievement;若含 context-path 或网关前缀须补齐。鉴权与若依一致(Cookie / Token)。
通用前置(无特殊说明):具备本模块菜单与按钮权限的账号已登录。统计范围:YYYY-MM(如 2026-05),同月不可重复。比率字段(数字平台使用率、品牌产品溢价率):0~1(如 0.85 表示 85%)。整数项(人数、个数等):非负整数。金额/面积:≥ 0,建议最多 2 位小数。
界面(UI)测试:借助 Playwright 启动 Chromium(与 Google Chrome 同源内核);可配置 channel: 'chrome' 调用本机已安装的谷歌浏览器。
一、单元测试用例
| 用例编号 |
测试模块 |
测试项 |
测试类型 |
测试工具 |
测试目的 |
前置条件 |
测试步骤 |
预期结果 |
| GTFY-CG-UT-001 |
参数校验 |
统计范围格式 |
单元测试 |
JUnit5 |
YYYY-MM |
无 |
2026-05 通过;2026-13、202605、2026/05、空 失败 |
与 §3.4 一致 |
| GTFY-CG-UT-002 |
参数校验 |
统计范围唯一 |
单元测试 |
JUnit5 |
§5.1 |
库中已有 2026-01 |
新增同 statPeriod |
失败;提示月份已存在 |
| GTFY-CG-UT-003 |
参数校验 |
集体经济收入 |
单元测试 |
JUnit5 |
≥0,2 位小数 |
无 |
-1、0、0.01、999999.99、三位小数 |
负/三位小数失败;0 及合法正数通过 |
| GTFY-CG-UT-004 |
参数校验 |
整数项非负 |
单元测试 |
JUnit5 |
人数/个数 |
无 |
employmentDrivenCount 为 -1、1.5、0、100 |
负/小数失败;0、100 通过 |
| GTFY-CG-UT-005 |
参数校验 |
绿化面积 |
单元测试 |
JUnit5 |
≥0 可小数 |
无 |
newGreenArea 为 -0.1、0、12.5 |
负失败;0、12.5 通过 |
| GTFY-CG-UT-006 |
参数校验 |
数字平台使用率 |
单元测试 |
JUnit5 |
[0,1] |
无 |
-0.01、0、0.85、1、1.01 |
越界失败;0、0.85、1 通过 |
| GTFY-CG-UT-007 |
参数校验 |
品牌产品溢价率 |
单元测试 |
JUnit5 |
[0,1] |
无 |
同 UT-006 规则 |
与 UT-006 一致 |
| GTFY-CG-UT-008 |
参数校验 |
必填项非空 |
单元测试 |
JUnit5 |
§5.1 全必填 |
无 |
缺 statPeriod 或任一整数字段 null |
失败 |
| GTFY-CG-UT-009 |
Service |
新增落库 |
单元测试 |
JUnit5+Mockito |
正常登记 |
合法实体、月份未占用 |
insert(...) |
各指标与入参一致;无发布状态字段 |
| GTFY-CG-UT-010 |
Service |
修改排除自身查重 |
单元测试 |
JUnit5+Mockito |
§5.3 |
id=1 为 2026-01;存在 2026-02 |
将 id=1 改为 2026-02 |
失败(与 id=2 冲突) |
| GTFY-CG-UT-011 |
Service |
修改同月保留 |
单元测试 |
JUnit5+Mockito |
不改月份 |
id=1 2026-01 |
改收入仍 2026-01 |
成功 |
| GTFY-CG-UT-012 |
Service |
删除记录 |
单元测试 |
JUnit5+Mockito |
§5.4 |
Mock Mapper |
deleteByIds([id]) |
调用删除;无附件清理 |
| GTFY-CG-UT-013 |
Service |
列表按年筛选 SQL |
单元测试 |
JUnit5 |
statYear |
无 |
检查 XML:statYear=2026 |
条件含 2026-% 或 LEFT(stat_period,4)=2026 |
| GTFY-CG-UT-014 |
Service |
列表排序 |
单元测试 |
JUnit5 |
技术方案 |
无 |
检查 ORDER BY |
stat_period DESC, create_time DESC |
| GTFY-CG-UT-015 |
修改守卫 |
无状态限制 |
单元测试 |
JUnit5 |
台账 |
任意记录 |
canEdit(any) 恒 true(若存在守卫) |
无「已发布不可改」类限制 |
二、接口测试用例
| 用例编号 |
测试模块 |
测试项 |
测试类型 |
测试工具 |
测试目的 |
前置条件 |
测试步骤 |
预期结果 |
| GTFY-CG-API-001 |
列表 |
默认分页排序 |
接口测试 |
Postman/curl |
§5.2 |
已登录;有多月数据 |
GET /commonProsperity/achievement/list |
rows≤20;statPeriod 月份倒序 |
| GTFY-CG-API-002 |
列表 |
统计年份筛选 |
接口测试 |
Postman |
按年 |
含 2025-12、2026-03 |
statYear=2026 |
仅 2026-xx 记录 |
| GTFY-CG-API-003 |
列表 |
年份为空不过滤 |
接口测试 |
Postman |
全量 |
已登录 |
不传 statYear |
含不同年份记录 |
| GTFY-CG-API-004 |
列表 |
无数据年份 |
接口测试 |
Postman |
边界 |
已登录 |
statYear=1999 |
rows 为空或 total=0 |
| GTFY-CG-API-005 |
新增 |
合法全字段 |
接口测试 |
Postman |
§5.1 |
已登录;2026-06 未占用 |
POST Body 全部必填合法 |
code 成功;详情字段一致 |
| GTFY-CG-API-006 |
新增 |
统计范围重复 |
接口测试 |
Postman |
唯一 |
已存在 2026-01 |
POST statPeriod=2026-01 |
失败;msg 可区分;库中仍 1 条 |
| GTFY-CG-API-007 |
新增 |
统计范围格式非法 |
接口测试 |
Postman |
YYYY-MM |
已登录 |
statPeriod=2026-13 或 202605 |
失败 |
| GTFY-CG-API-008 |
新增 |
比率大于 1 |
接口测试 |
Postman |
[0,1] |
已登录 |
digitalPlatformUsageRate=1.2 |
失败 |
| GTFY-CG-API-009 |
新增 |
比率为负 |
接口测试 |
Postman |
[0,1] |
已登录 |
brandPremiumRate=-0.1 |
失败 |
| GTFY-CG-API-010 |
新增 |
整数项含小数 |
接口测试 |
Postman |
整数 |
已登录 |
employmentDrivenCount=10.5 |
失败 |
| GTFY-CG-API-011 |
新增 |
收入为负 |
接口测试 |
Postman |
≥0 |
已登录 |
collectiveEconomyIncome=-1 |
失败 |
| GTFY-CG-API-012 |
新增 |
边界比率 0 和 1 |
接口测试 |
Postman |
闭区间 |
未占用两个月 |
分别新增 rate=0、rate=1 的两条 |
均成功 |
| GTFY-CG-API-013 |
详情 |
有效 id |
接口测试 |
Postman |
§5.5 |
已登录 |
GET /commonProsperity/achievement/{id} |
含 12 项指标及审计字段 |
| GTFY-CG-API-014 |
详情 |
无效 id |
接口测试 |
Postman |
异常 |
已登录 |
不存在 id |
404 或业务失败 |
| GTFY-CG-API-015 |
修改 |
合法修改指标 |
接口测试 |
Postman |
§5.3 |
已登录;有记录 |
PUT 改 collectiveEconomyIncome、人数等 |
成功;详情已更新 |
| GTFY-CG-API-016 |
修改 |
改月冲突 |
接口测试 |
Postman |
唯一 |
A=2026-01、B=2026-02 |
将 A 改为 2026-02 |
失败 |
| GTFY-CG-API-017 |
修改 |
校验仍生效 |
接口测试 |
Postman |
异常 |
已登录 |
PUT 比率改为 2 |
失败;原数据不变 |
| GTFY-CG-API-018 |
删除 |
单条删除 |
接口测试 |
Postman |
§5.4 |
已登录 |
DELETE .../achievement/{id} |
成功;详情 404 |
| GTFY-CG-API-019 |
删除 |
批量删除 |
接口测试 |
Postman |
批量 |
已登录 |
DELETE id1,id2 |
均不可查 |
| GTFY-CG-API-020 |
端到端 |
CRUD 串联 |
接口测试 |
Postman |
§4 |
已登录 |
新增→列表(statYear)→详情→改→删 |
全流程成功 |
| GTFY-CG-API-021 |
鉴权 |
未登录 |
接口测试 |
curl |
安全 |
无 Token |
GET .../list |
401 或统一未登录 |
| GTFY-CG-API-022 |
权限 |
无写权限 |
接口测试 |
Postman |
越权 |
仅 list |
POST .../achievement |
无权限失败 |
| GTFY-CG-API-023 |
响应 |
失败可读 |
接口测试 |
Postman |
§7 |
已登录 |
触发重复月份、比率越界 |
code、msg 可区分 |
| GTFY-CG-API-024 |
导出 |
按年导出(可选) |
接口测试 |
Postman |
§3.6 |
有 export 权限 |
POST .../export+statYear=2026 |
文件仅含 2026 年数据 |
三、界面测试用例(UI)
测试工具:Playwright + Chromium(channel: 'chrome' 使用本机 Google Chrome)。
| 用例编号 |
测试模块 |
测试项 |
测试类型 |
测试工具 |
测试目的 |
前置条件 |
测试步骤 |
预期结果 |
| GTFY-CG-UI-001 |
列表 |
默认分页排序 |
UI 测试 |
Playwright+Chrome |
§5.2 |
已登录;数据>20 |
进入「共同富裕成果」 |
每页 20;统计范围月份新在前 |
| GTFY-CG-UI-002 |
列表 |
统计年份筛选 |
UI 测试 |
Playwright+Chrome |
statYear |
含 2025、2026 数据 |
选年份 2026→查询 |
仅显示 2026-xx |
| GTFY-CG-UI-003 |
列表 |
重置筛选 |
UI 测试 |
Playwright+Chrome |
恢复 |
已按年筛选 |
重置 |
年份清空;显示全部 |
| GTFY-CG-UI-004 |
列表 |
操作按钮 |
UI 测试 |
Playwright+Chrome |
§6 |
有数据 |
查看操作列 |
查看/编辑/删除可见(按权限) |
| GTFY-CG-UI-005 |
新增 |
合法全指标提交 |
UI 测试 |
Playwright+Chrome |
§5.1 |
已登录 |
新增→选统计月份→填全部指标→确定 |
成功;列表出现该行 |
| GTFY-CG-UI-006 |
新增 |
统计范围必选 |
UI 测试 |
Playwright+Chrome |
必填 |
已登录 |
不选月份→提交 |
校验失败 |
| GTFY-CG-UI-007 |
新增 |
重复月份 |
UI 测试 |
Playwright+Chrome |
唯一 |
已有 2026-01 |
再新增 2026-01 |
提示月份已存在 |
| GTFY-CG-UI-008 |
新增 |
比率超 1 |
UI 测试 |
Playwright+Chrome |
0~1 |
已登录 |
使用率填 1.2→提交 |
校验失败 |
| GTFY-CG-UI-009 |
新增 |
整数项填小数 |
UI 测试 |
Playwright+Chrome |
整数 |
已登录 |
带动就业人数 10.5→提交 |
校验失败 |
| GTFY-CG-UI-010 |
新增 |
收入为负 |
UI 测试 |
Playwright+Chrome |
≥0 |
已登录 |
集体经济收入 -1→提交 |
校验失败 |
| GTFY-CG-UI-011 |
新增 |
比率边界 0/1 |
UI 测试 |
Playwright+Chrome |
闭区间 |
两个未占用月 |
分别填 0 和 1 提交 |
均成功 |
| GTFY-CG-UI-012 |
详情 |
字段完整 |
UI 测试 |
Playwright+Chrome |
§5.5 |
任意记录 |
点「查看」 |
12 项指标+审计信息齐全 |
| GTFY-CG-UI-013 |
详情 |
比率展示格式 |
UI 测试 |
Playwright+Chrome |
展示约定 |
使用率 0.85 |
查看详情 |
显示为 0.85 或 85%(与产品一致) |
| GTFY-CG-UI-014 |
修改 |
编辑成功 |
UI 测试 |
Playwright+Chrome |
§5.3 |
有记录 |
编辑→改收入/人数→保存 |
列表/详情已更新 |
| GTFY-CG-UI-015 |
修改 |
改月冲突 |
UI 测试 |
Playwright+Chrome |
唯一 |
已有 01、02 月 |
将 01 月改为 02 月保存 |
失败提示 |
| GTFY-CG-UI-016 |
修改 |
清空必填失败 |
UI 测试 |
Playwright+Chrome |
校验 |
有记录 |
清空某必填整数项→保存 |
校验失败 |
| GTFY-CG-UI-017 |
删除 |
单条确认删除 |
UI 测试 |
Playwright+Chrome |
§5.4 |
有记录 |
删除→确认 |
行消失 |
| GTFY-CG-UI-018 |
删除 |
取消删除 |
UI 测试 |
Playwright+Chrome |
确认框 |
有记录 |
删除→取消 |
行仍在 |
| GTFY-CG-UI-019 |
删除 |
批量删除 |
UI 测试 |
Playwright+Chrome |
批量 |
多条 |
勾选→批量删→确认 |
选中均消失 |
| GTFY-CG-UI-020 |
端到端 |
CRUD 串联 |
UI 集成 |
Playwright+Chrome |
§4 |
可新增 |
新增→按年查→详情→改→删 |
全流程成功 |
| GTFY-CG-UI-021 |
权限 |
只读账号 |
UI 测试 |
Playwright+Chrome |
§8 |
无 add/edit/remove |
登录进模块 |
无对应按钮或操作拒绝 |
| GTFY-CG-UI-022 |
导出 |
按年导出(可选) |
UI 测试 |
Playwright+Chrome |
export |
有导出权限 |
选年→点导出 |
下载文件且数据为所选年 |
| GTFY-CG-UI-023 |
表单 |
月份选择器 |
UI 测试 |
Playwright+Chrome |
YYYY-MM |
已登录 |
新增打开月份控件 |
仅能选到月;提交值为 YYYY-MM |
| GTFY-CG-UI-024 |
错误提示 |
业务失败可读 |
UI 测试 |
Playwright+Chrome |
§7 |
已登录 |
触发重复月提交 |
Message 含明确原因 |
Playwright 与谷歌浏览器(实施提示)
- 安装:
npm i -D @playwright/test;npx playwright install chromium;本机 Chrome:channel: 'chrome'。
- 菜单:
getByText('共同富裕成果') 或 goto('/commonProsperity/achievement')(以实际路由为准)。
- 统计年份:筛选区
el-select 或年份输入;统计范围表单用 type="month" 的 date-picker(若依 value-format="yyyy-MM")。
- 比率输入:对数字输入框
fill('1.2') 后点确定,断言错误提示。
覆盖对照
| 类别 |
单元 UT |
接口 API |
界面 UI |
| 正常流程 |
UT-009~012、014 |
API-001~005、012~016、018~020 |
UI-001~006、011~014、017、020 |
| 异常流程 |
UT-001~008 |
API-006~011、017、021~023 |
UI-007~010、015~016、018~019、024 |
| 业务约束 |
UT-002、006~007、015 |
API-002~004、006~012、016 |
UI-002、007~011、015、023 |
功能需求追溯(自查)
| 需求章节 |
要点 |
主要对应用例 |
| §5.1 新增 |
12 项必填、YYYY-MM、整数/比率/金额规则、月唯一 |
UT-001~010;API-005~012;UI-005~011 |
| §5.2 列表 |
statYear、分页、月份倒序 |
API-001~004;UI-001~003 |
| §5.3 修改 |
全字段可改、改月查重 |
UT-010~011;API-015~017;UI-014~016 |
| §5.4 删除 |
确认、批量 |
UT-012;API-018~019;UI-017~019 |
| §5.5 详情 |
全指标展示 |
API-013~014;UI-012~013 |
| §6 矩阵 |
无发布状态 |
UT-015;无发布/下架用例 |
| §7 错误约定 |
code/msg |
API-023;UI-024 |
修订记录
| 版本 |
说明 |
| 1.0 |
初版:单元 15、接口 24、UI 24;台账无发布态;Playwright+Chrome;Base /commonProsperity/achievement |