|
|
@@ -0,0 +1,774 @@
|
|
|
1
|
+# 商品分类 — 测试用例(C 端)
|
|
|
2
|
+
|
|
|
3
|
+> **依据:** 《商品分类功能需求.md》v1.0.1、《商品分类技术方案.md》v1.0
|
|
|
4
|
+> **关联:** 平台《商品分类测试用例.md》CAT-UT-013/014(同源 `isCategoryVisible`)、C 端《商城首页测试用例.md》MHP-UI-008/009(HM7 入口)、《关联需求分析.md》§11
|
|
|
5
|
+> **范围:** C 端 `/api/category/tree`、`/api/category/{level1Id}/level2-tabs`、`/api/category/goods`;`CategoryAppServiceImpl` / `CategoryAppController`
|
|
|
6
|
+> **代码落位:** `baqing-shop/src/main/java/com/ruoyi/web/modules/home/`
|
|
|
7
|
+> **排除:** 搜索执行与结果页、商品详情可购四条件校验、平台/店铺分类 CRUD、店铺商品分类 C 端导航、聚合 `/api/category/index`
|
|
|
8
|
+> **环境:** RuoYi v3.9.2-springboot2;MySQL 5.7.39;C 端 **无需 Token**(`@Anonymous`);UI 使用 Playwright **`channel: 'chrome'`**
|
|
|
9
|
+
|
|
|
10
|
+---
|
|
|
11
|
+
|
|
|
12
|
+## 用例编号说明
|
|
|
13
|
+
|
|
|
14
|
+| 前缀 | 类型 | 工具 |
|
|
|
15
|
+|------|------|------|
|
|
|
16
|
+| CGC-UT-xxx | 单元测试 | JUnit 5 + Mockito |
|
|
|
17
|
+| CGC-API-xxx | 接口测试 | MockMvc / Apifox |
|
|
|
18
|
+| CGC-UI-xxx | 界面测试 | Playwright(Google Chrome) |
|
|
|
19
|
+
|
|
|
20
|
+> **命名:** **CGC** = Consumer Goods Category(C 端商品分类);与平台 **CAT-** 区分。
|
|
|
21
|
+
|
|
|
22
|
+---
|
|
|
23
|
+
|
|
|
24
|
+## 测试数据约定
|
|
|
25
|
+
|
|
|
26
|
+| 实体 | 说明 |
|
|
|
27
|
+|------|------|
|
|
|
28
|
+| 平台一级 | L1-A「兽药」show=1 sort=0;L1-B「饲料」show=1 sort=1;L1-H **隐藏** show=0;L1-E **空壳**(无可见二级);L1-S 店铺101一级(**不应出现**) |
|
|
|
29
|
+| 平台二级 | L1-A 下 L2-A1「抗生素」、L2-A2「驱虫药」show=1;L2-H **隐藏** show=0;L2-P 父级 L1-H(**不可见**) |
|
|
|
30
|
+| 店铺 | S101 开业;S102 **停业**;S103 已删 |
|
|
|
31
|
+| 出售中商品 | G-A1@L2-A1 销量100 价88;G-A2 销量100 价99(同销量测排序);G-A3 销量50;G-B1@S102 停业;G-Z1 stock=0;G-O1 已下架/待审核(**不进列表**) |
|
|
|
32
|
+| 会员 | M1 正常;M2 **禁用**(分类仍可读) |
|
|
|
33
|
+
|
|
|
34
|
+---
|
|
|
35
|
+
|
|
|
36
|
+## 一、单元测试
|
|
|
37
|
+
|
|
|
38
|
+### CGC-UT-001 分类树委托平台 Facade
|
|
|
39
|
+
|
|
|
40
|
+| 要素 | 内容 |
|
|
|
41
|
+|------|------|
|
|
|
42
|
+| **用例编号** | CGC-UT-001 |
|
|
|
43
|
+| **测试模块** | C 端商品分类 |
|
|
|
44
|
+| **测试项** | listCategoryTree |
|
|
|
45
|
+| **测试类型** | 单元测试 |
|
|
|
46
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
47
|
+| **测试目的** | 验证 GC1、GC6 |
|
|
|
48
|
+| **前置条件** | Mock `ICategoryFacade.listVisibleByShopId(null)` 返回含 L1-A 树 |
|
|
|
49
|
+| **测试步骤** | 调用 `listCategoryTree()` |
|
|
|
50
|
+| **预期结果** | 调用 `listVisibleByShopId(null)`;返回与 Facade 一致 |
|
|
|
51
|
+
|
|
|
52
|
+### CGC-UT-002 分类树空列表
|
|
|
53
|
+
|
|
|
54
|
+| 要素 | 内容 |
|
|
|
55
|
+|------|------|
|
|
|
56
|
+| **用例编号** | CGC-UT-002 |
|
|
|
57
|
+| **测试模块** | C 端商品分类 |
|
|
|
58
|
+| **测试项** | listCategoryTree 空态 |
|
|
|
59
|
+| **测试类型** | 单元测试 |
|
|
|
60
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
61
|
+| **测试目的** | 验证 §5.3 边界 |
|
|
|
62
|
+| **前置条件** | Facade 返回 empty |
|
|
|
63
|
+| **测试步骤** | `listCategoryTree()` |
|
|
|
64
|
+| **预期结果** | 空 List;**不** 抛异常 |
|
|
|
65
|
+
|
|
|
66
|
+### CGC-UT-003 二级 Tab 一级可见时返回
|
|
|
67
|
+
|
|
|
68
|
+| 要素 | 内容 |
|
|
|
69
|
+|------|------|
|
|
|
70
|
+| **用例编号** | CGC-UT-003 |
|
|
|
71
|
+| **测试模块** | C 端商品分类 |
|
|
|
72
|
+| **测试项** | listLevel2Tabs |
|
|
|
73
|
+| **测试类型** | 单元测试 |
|
|
|
74
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
75
|
+| **测试目的** | 验证 GC5、GC7 |
|
|
|
76
|
+| **前置条件** | L1-A 一级 show=1;Mapper 返回 L2-A1、L2-A2 |
|
|
|
77
|
+| **测试步骤** | `listLevel2Tabs(L1-A.id)` |
|
|
|
78
|
+| **预期结果** | 返回 2 条二级;顺序与 Mapper 一致 |
|
|
|
79
|
+
|
|
|
80
|
+### CGC-UT-004 二级 Tab 一级隐藏拒绝
|
|
|
81
|
+
|
|
|
82
|
+| 要素 | 内容 |
|
|
|
83
|
+|------|------|
|
|
|
84
|
+| **用例编号** | CGC-UT-004 |
|
|
|
85
|
+| **测试模块** | C 端商品分类 |
|
|
|
86
|
+| **测试项** | listLevel2Tabs 校验 |
|
|
|
87
|
+| **测试类型** | 单元测试 |
|
|
|
88
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
89
|
+| **测试目的** | 验证 GC6 |
|
|
|
90
|
+| **前置条件** | L1-H show=0 |
|
|
|
91
|
+| **测试步骤** | `listLevel2Tabs(L1-H.id)` |
|
|
|
92
|
+| **预期结果** | 抛 `ServiceException`;msg 含「不可见」或「不存在」 |
|
|
|
93
|
+
|
|
|
94
|
+### CGC-UT-005 商品列表缺 categoryId
|
|
|
95
|
+
|
|
|
96
|
+| 要素 | 内容 |
|
|
|
97
|
+|------|------|
|
|
|
98
|
+| **用例编号** | CGC-UT-005 |
|
|
|
99
|
+| **测试模块** | C 端商品分类 |
|
|
|
100
|
+| **测试项** | listCategoryGoods 必填 |
|
|
|
101
|
+| **测试类型** | 单元测试 |
|
|
|
102
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
103
|
+| **测试目的** | 验证 §3.4 校验 |
|
|
|
104
|
+| **前置条件** | query.categoryId 为空 |
|
|
|
105
|
+| **测试步骤** | `listCategoryGoods(query)` |
|
|
|
106
|
+| **预期结果** | 抛 `ServiceException`;「请选择商品分类」类提示 |
|
|
|
107
|
+
|
|
|
108
|
+### CGC-UT-006 商品列表分类不可见拒绝
|
|
|
109
|
+
|
|
|
110
|
+| 要素 | 内容 |
|
|
|
111
|
+|------|------|
|
|
|
112
|
+| **用例编号** | CGC-UT-006 |
|
|
|
113
|
+| **测试模块** | C 端商品分类 |
|
|
|
114
|
+| **测试项** | isCategoryVisible |
|
|
|
115
|
+| **测试类型** | 单元测试 |
|
|
|
116
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
117
|
+| **测试目的** | 验证 GC6 |
|
|
|
118
|
+| **前置条件** | `isCategoryVisible(L2-H)=false` |
|
|
|
119
|
+| **测试步骤** | `listCategoryGoods({categoryId:L2-H})` |
|
|
|
120
|
+| **预期结果** | 抛 `ServiceException`;「分类不存在或不可见」 |
|
|
|
121
|
+
|
|
|
122
|
+### CGC-UT-007 商品列表默认销量降序
|
|
|
123
|
+
|
|
|
124
|
+| 要素 | 内容 |
|
|
|
125
|
+|------|------|
|
|
|
126
|
+| **用例编号** | CGC-UT-007 |
|
|
|
127
|
+| **测试模块** | C 端商品分类 |
|
|
|
128
|
+| **测试项** | sortBy 默认 |
|
|
|
129
|
+| **测试类型** | 单元测试 |
|
|
|
130
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
131
|
+| **测试目的** | 验证 GC9 |
|
|
|
132
|
+| **前置条件** | L2-A1 可见;sortBy 未传 |
|
|
|
133
|
+| **测试步骤** | `listCategoryGoods(query)` |
|
|
|
134
|
+| **预期结果** | Mapper 调用 `sortBy=sales_desc` |
|
|
|
135
|
+
|
|
|
136
|
+### CGC-UT-008 商品列表价格升序排序
|
|
|
137
|
+
|
|
|
138
|
+| 要素 | 内容 |
|
|
|
139
|
+|------|------|
|
|
|
140
|
+| **用例编号** | CGC-UT-008 |
|
|
|
141
|
+| **测试模块** | C 端商品分类 |
|
|
|
142
|
+| **测试项** | sortBy price_asc |
|
|
|
143
|
+| **测试类型** | 单元测试 |
|
|
|
144
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
145
|
+| **测试目的** | 验证 GC9 |
|
|
|
146
|
+| **前置条件** | query.sortBy=`price_asc` |
|
|
|
147
|
+| **测试步骤** | `listCategoryGoods(query)` |
|
|
|
148
|
+| **预期结果** | Mapper 入参 `price_asc` |
|
|
|
149
|
+
|
|
|
150
|
+### CGC-UT-009 非法 sortBy 拒绝
|
|
|
151
|
+
|
|
|
152
|
+| 要素 | 内容 |
|
|
|
153
|
+|------|------|
|
|
|
154
|
+| **用例编号** | CGC-UT-009 |
|
|
|
155
|
+| **测试模块** | C 端商品分类 |
|
|
|
156
|
+| **测试项** | sortBy 校验 |
|
|
|
157
|
+| **测试类型** | 单元测试 |
|
|
|
158
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
159
|
+| **测试目的** | 验证 §3.4 |
|
|
|
160
|
+| **前置条件** | sortBy=`invalid`;分类可见 |
|
|
|
161
|
+| **测试步骤** | `listCategoryGoods(query)` |
|
|
|
162
|
+| **预期结果** | 抛 `ServiceException`;「排序参数无效」 |
|
|
|
163
|
+
|
|
|
164
|
+### CGC-UT-010 商品列表透传 Mapper 顺序
|
|
|
165
|
+
|
|
|
166
|
+| 要素 | 内容 |
|
|
|
167
|
+|------|------|
|
|
|
168
|
+| **用例编号** | CGC-UT-010 |
|
|
|
169
|
+| **测试模块** | C 端商品分类 |
|
|
|
170
|
+| **测试项** | 列表顺序 |
|
|
|
171
|
+| **测试类型** | 单元测试 |
|
|
|
172
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
173
|
+| **测试目的** | 验证 GC8 |
|
|
|
174
|
+| **前置条件** | Mapper 返回 G-A1 在 G-A3 前 |
|
|
|
175
|
+| **测试步骤** | `listCategoryGoods(query)` |
|
|
|
176
|
+| **预期结果** | 结果顺序与 Mapper 一致 |
|
|
|
177
|
+
|
|
|
178
|
+### CGC-UT-011 商品列表零条
|
|
|
179
|
+
|
|
|
180
|
+| 要素 | 内容 |
|
|
|
181
|
+|------|------|
|
|
|
182
|
+| **用例编号** | CGC-UT-011 |
|
|
|
183
|
+| **测试模块** | C 端商品分类 |
|
|
|
184
|
+| **测试项** | 列表空态 |
|
|
|
185
|
+| **测试类型** | 单元测试 |
|
|
|
186
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
187
|
+| **测试目的** | 验证 §7.4 |
|
|
|
188
|
+| **前置条件** | Mapper 返回 empty |
|
|
|
189
|
+| **测试步骤** | `listCategoryGoods(query)` |
|
|
|
190
|
+| **预期结果** | 空 List |
|
|
|
191
|
+
|
|
|
192
|
+### CGC-UT-012 Facade null 树返回空
|
|
|
193
|
+
|
|
|
194
|
+| 要素 | 内容 |
|
|
|
195
|
+|------|------|
|
|
|
196
|
+| **用例编号** | CGC-UT-012 |
|
|
|
197
|
+| **测试模块** | C 端商品分类 |
|
|
|
198
|
+| **测试项** | listCategoryTree null |
|
|
|
199
|
+| **测试类型** | 单元测试 |
|
|
|
200
|
+| **测试工具** | JUnit 5 + Mockito |
|
|
|
201
|
+| **测试目的** | 验证健壮性 |
|
|
|
202
|
+| **前置条件** | Facade 返回 null |
|
|
|
203
|
+| **测试步骤** | `listCategoryTree()` |
|
|
|
204
|
+| **预期结果** | 空 List;**不** NPE |
|
|
|
205
|
+
|
|
|
206
|
+---
|
|
|
207
|
+
|
|
|
208
|
+## 二、接口测试
|
|
|
209
|
+
|
|
|
210
|
+### CGC-API-001 分类树无需 Token
|
|
|
211
|
+
|
|
|
212
|
+| 要素 | 内容 |
|
|
|
213
|
+|------|------|
|
|
|
214
|
+| **用例编号** | CGC-API-001 |
|
|
|
215
|
+| **测试模块** | C 端商品分类 |
|
|
|
216
|
+| **测试项** | GET /tree 匿名 |
|
|
|
217
|
+| **测试类型** | 接口测试 |
|
|
|
218
|
+| **测试工具** | MockMvc / Apifox |
|
|
|
219
|
+| **测试目的** | 验证 GC2 |
|
|
|
220
|
+| **前置条件** | 不传 Authorization |
|
|
|
221
|
+| **测试步骤** | GET `/api/category/tree` |
|
|
|
222
|
+| **预期结果** | `code=200`;`data` 为数组 |
|
|
|
223
|
+
|
|
|
224
|
+### CGC-API-002 分类树含 children 契约
|
|
|
225
|
+
|
|
|
226
|
+| 要素 | 内容 |
|
|
|
227
|
+|------|------|
|
|
|
228
|
+| **用例编号** | CGC-API-002 |
|
|
|
229
|
+| **测试模块** | C 端商品分类 |
|
|
|
230
|
+| **测试项** | tree VO |
|
|
|
231
|
+| **测试类型** | 接口测试 |
|
|
|
232
|
+| **测试工具** | MockMvc |
|
|
|
233
|
+| **测试目的** | 验证 §3.2 |
|
|
|
234
|
+| **前置条件** | 存在 L1-A 含 L2-A1 |
|
|
|
235
|
+| **测试步骤** | GET `/tree` |
|
|
|
236
|
+| **预期结果** | 含 `categoryId/categoryName/children`;child 含 `categoryId/categoryName` |
|
|
|
237
|
+
|
|
|
238
|
+### CGC-API-003 分类树不含 show=0 一级
|
|
|
239
|
+
|
|
|
240
|
+| 要素 | 内容 |
|
|
|
241
|
+|------|------|
|
|
|
242
|
+| **用例编号** | CGC-API-003 |
|
|
|
243
|
+| **测试模块** | C 端商品分类 |
|
|
|
244
|
+| **测试项** | tree 过滤 |
|
|
|
245
|
+| **测试类型** | 接口测试 |
|
|
|
246
|
+| **测试工具** | Apifox |
|
|
|
247
|
+| **测试目的** | 验证 GC6 |
|
|
|
248
|
+| **前置条件** | 库中 L1-H show=0 |
|
|
|
249
|
+| **测试步骤** | GET `/tree` |
|
|
|
250
|
+| **预期结果** | **不含** L1-H |
|
|
|
251
|
+
|
|
|
252
|
+### CGC-API-004 分类树不含空壳一级
|
|
|
253
|
+
|
|
|
254
|
+| 要素 | 内容 |
|
|
|
255
|
+|------|------|
|
|
|
256
|
+| **用例编号** | CGC-API-004 |
|
|
|
257
|
+| **测试模块** | C 端商品分类 |
|
|
|
258
|
+| **测试项** | 空壳一级 |
|
|
|
259
|
+| **测试类型** | 接口测试 |
|
|
|
260
|
+| **测试工具** | Apifox |
|
|
|
261
|
+| **测试目的** | 验证 GC6、§4.2 |
|
|
|
262
|
+| **前置条件** | L1-E show=1 但无可见二级 |
|
|
|
263
|
+| **测试步骤** | GET `/tree` |
|
|
|
264
|
+| **预期结果** | **不含** L1-E |
|
|
|
265
|
+
|
|
|
266
|
+### CGC-API-005 分类树不含店铺分类
|
|
|
267
|
+
|
|
|
268
|
+| 要素 | 内容 |
|
|
|
269
|
+|------|------|
|
|
|
270
|
+| **用例编号** | CGC-API-005 |
|
|
|
271
|
+| **测试模块** | C 端商品分类 |
|
|
|
272
|
+| **测试项** | 平台隔离 |
|
|
|
273
|
+| **测试类型** | 接口测试 |
|
|
|
274
|
+| **测试工具** | Apifox |
|
|
|
275
|
+| **测试目的** | 验证 GC1 |
|
|
|
276
|
+| **前置条件** | 存在 L1-S(shop_id=101) |
|
|
|
277
|
+| **测试步骤** | GET `/tree` |
|
|
|
278
|
+| **预期结果** | **不含** L1-S |
|
|
|
279
|
+
|
|
|
280
|
+### CGC-API-006 二级 Tab 正常返回
|
|
|
281
|
+
|
|
|
282
|
+| 要素 | 内容 |
|
|
|
283
|
+|------|------|
|
|
|
284
|
+| **用例编号** | CGC-API-006 |
|
|
|
285
|
+| **测试模块** | C 端商品分类 |
|
|
|
286
|
+| **测试项** | GET level2-tabs |
|
|
|
287
|
+| **测试类型** | 接口测试 |
|
|
|
288
|
+| **测试工具** | MockMvc |
|
|
|
289
|
+| **测试目的** | 验证 GC5 |
|
|
|
290
|
+| **前置条件** | L1-A 可见;下有 L2-A1、L2-A2 |
|
|
|
291
|
+| **测试步骤** | GET `/api/category/{L1-A}/level2-tabs` |
|
|
|
292
|
+| **预期结果** | `code=200`;`data.length=2` |
|
|
|
293
|
+
|
|
|
294
|
+### CGC-API-007 二级 Tab 排序升序
|
|
|
295
|
+
|
|
|
296
|
+| 要素 | 内容 |
|
|
|
297
|
+|------|------|
|
|
|
298
|
+| **用例编号** | CGC-API-007 |
|
|
|
299
|
+| **测试模块** | C 端商品分类 |
|
|
|
300
|
+| **测试项** | Tab sort_no |
|
|
|
301
|
+| **测试类型** | 接口测试 |
|
|
|
302
|
+| **测试工具** | Apifox |
|
|
|
303
|
+| **测试目的** | 验证 GC7 |
|
|
|
304
|
+| **前置条件** | L2-A1 sort=0;L2-A2 sort=1 |
|
|
|
305
|
+| **测试步骤** | GET level2-tabs |
|
|
|
306
|
+| **预期结果** | 第一条 `categoryId=L2-A1` |
|
|
|
307
|
+
|
|
|
308
|
+### CGC-API-008 二级 Tab 一级不存在
|
|
|
309
|
+
|
|
|
310
|
+| 要素 | 内容 |
|
|
|
311
|
+|------|------|
|
|
|
312
|
+| **用例编号** | CGC-API-008 |
|
|
|
313
|
+| **测试模块** | C 端商品分类 |
|
|
|
314
|
+| **测试项** | level1 校验 |
|
|
|
315
|
+| **测试类型** | 接口测试 |
|
|
|
316
|
+| **测试工具** | MockMvc |
|
|
|
317
|
+| **测试目的** | 验证 §3.3 |
|
|
|
318
|
+| **前置条件** | level1Id=99999 |
|
|
|
319
|
+| **测试步骤** | GET `/api/category/99999/level2-tabs` |
|
|
|
320
|
+| **预期结果** | 业务失败;提示分类不存在/不可见 |
|
|
|
321
|
+
|
|
|
322
|
+### CGC-API-009 二级 Tab 一级隐藏
|
|
|
323
|
+
|
|
|
324
|
+| 要素 | 内容 |
|
|
|
325
|
+|------|------|
|
|
|
326
|
+| **用例编号** | CGC-API-009 |
|
|
|
327
|
+| **测试模块** | C 端商品分类 |
|
|
|
328
|
+| **测试项** | level1 show=0 |
|
|
|
329
|
+| **测试类型** | 接口测试 |
|
|
|
330
|
+| **测试工具** | Apifox |
|
|
|
331
|
+| **测试目的** | 验证 GC6 |
|
|
|
332
|
+| **前置条件** | L1-H show=0 |
|
|
|
333
|
+| **测试步骤** | GET `/api/category/{L1-H}/level2-tabs` |
|
|
|
334
|
+| **预期结果** | 业务失败 |
|
|
|
335
|
+
|
|
|
336
|
+### CGC-API-010 商品列表分页成功
|
|
|
337
|
+
|
|
|
338
|
+| 要素 | 内容 |
|
|
|
339
|
+|------|------|
|
|
|
340
|
+| **用例编号** | CGC-API-010 |
|
|
|
341
|
+| **测试模块** | C 端商品分类 |
|
|
|
342
|
+| **测试项** | GET /goods |
|
|
|
343
|
+| **测试类型** | 接口测试 |
|
|
|
344
|
+| **测试工具** | MockMvc |
|
|
|
345
|
+| **测试目的** | 验证 §3.4 |
|
|
|
346
|
+| **前置条件** | L2-A1 可见;≥1 出售中商品 |
|
|
|
347
|
+| **测试步骤** | GET `/api/category/goods?categoryId=&pageNum=1&pageSize=10` |
|
|
|
348
|
+| **预期结果** | `code=200`;含 `rows`、`total` |
|
|
|
349
|
+
|
|
|
350
|
+### CGC-API-011 商品列表字段契约
|
|
|
351
|
+
|
|
|
352
|
+| 要素 | 内容 |
|
|
|
353
|
+|------|------|
|
|
|
354
|
+| **用例编号** | CGC-API-011 |
|
|
|
355
|
+| **测试模块** | C 端商品分类 |
|
|
|
356
|
+| **测试项** | goods VO |
|
|
|
357
|
+| **测试类型** | 接口测试 |
|
|
|
358
|
+| **测试工具** | MockMvc |
|
|
|
359
|
+| **测试目的** | 验证 GC10 |
|
|
|
360
|
+| **前置条件** | G-A1 出售中 |
|
|
|
361
|
+| **测试步骤** | GET `/goods?categoryId=L2-A1` |
|
|
|
362
|
+| **预期结果** | row 含 `goodsId/goodsName/mainPic/salePrice/shopId/shopName` |
|
|
|
363
|
+
|
|
|
364
|
+### CGC-API-012 商品列表缺 categoryId
|
|
|
365
|
+
|
|
|
366
|
+| 要素 | 内容 |
|
|
|
367
|
+|------|------|
|
|
|
368
|
+| **用例编号** | CGC-API-012 |
|
|
|
369
|
+| **测试模块** | C 端商品分类 |
|
|
|
370
|
+| **测试项** | categoryId 必填 |
|
|
|
371
|
+| **测试类型** | 接口测试 |
|
|
|
372
|
+| **测试工具** | MockMvc |
|
|
|
373
|
+| **测试目的** | 验证 §3.4 |
|
|
|
374
|
+| **前置条件** | — |
|
|
|
375
|
+| **测试步骤** | GET `/api/category/goods` |
|
|
|
376
|
+| **预期结果** | 业务失败 |
|
|
|
377
|
+
|
|
|
378
|
+### CGC-API-013 商品列表分类不可见
|
|
|
379
|
+
|
|
|
380
|
+| 要素 | 内容 |
|
|
|
381
|
+|------|------|
|
|
|
382
|
+| **用例编号** | CGC-API-013 |
|
|
|
383
|
+| **测试模块** | C 端商品分类 |
|
|
|
384
|
+| **测试项** | 隐藏二级 |
|
|
|
385
|
+| **测试类型** | 接口测试 |
|
|
|
386
|
+| **测试工具** | Apifox |
|
|
|
387
|
+| **测试目的** | 验证 GC6 |
|
|
|
388
|
+| **前置条件** | L2-H show=0 |
|
|
|
389
|
+| **测试步骤** | GET `/goods?categoryId=L2-H` |
|
|
|
390
|
+| **预期结果** | 业务失败;「分类不存在或不可见」 |
|
|
|
391
|
+
|
|
|
392
|
+### CGC-API-014 商品列表默认销量降序
|
|
|
393
|
+
|
|
|
394
|
+| 要素 | 内容 |
|
|
|
395
|
+|------|------|
|
|
|
396
|
+| **用例编号** | CGC-API-014 |
|
|
|
397
|
+| **测试模块** | C 端商品分类 |
|
|
|
398
|
+| **测试项** | 默认排序 |
|
|
|
399
|
+| **测试类型** | 接口测试 |
|
|
|
400
|
+| **测试工具** | Apifox |
|
|
|
401
|
+| **测试目的** | 验证 GC9 |
|
|
|
402
|
+| **前置条件** | G-A1 销量100;G-A3 销量50 |
|
|
|
403
|
+| **测试步骤** | GET `/goods?categoryId=L2-A1`(无 sortBy) |
|
|
|
404
|
+| **预期结果** | 首条 `goodsId=G-A1` |
|
|
|
405
|
+
|
|
|
406
|
+### CGC-API-015 商品列表价格升序
|
|
|
407
|
+
|
|
|
408
|
+| 要素 | 内容 |
|
|
|
409
|
+|------|------|
|
|
|
410
|
+| **用例编号** | CGC-API-015 |
|
|
|
411
|
+| **测试模块** | C 端商品分类 |
|
|
|
412
|
+| **测试项** | sortBy price_asc |
|
|
|
413
|
+| **测试类型** | 接口测试 |
|
|
|
414
|
+| **测试工具** | Apifox |
|
|
|
415
|
+| **测试目的** | 验证 GC9 |
|
|
|
416
|
+| **前置条件** | G-A1 价88;G-A2 价99 |
|
|
|
417
|
+| **测试步骤** | GET `/goods?categoryId=L2-A1&sortBy=price_asc` |
|
|
|
418
|
+| **预期结果** | 首条价 **更低** 的商品 |
|
|
|
419
|
+
|
|
|
420
|
+### CGC-API-016 商品列表非法 sortBy
|
|
|
421
|
+
|
|
|
422
|
+| 要素 | 内容 |
|
|
|
423
|
+|------|------|
|
|
|
424
|
+| **用例编号** | CGC-API-016 |
|
|
|
425
|
+| **测试模块** | C 端商品分类 |
|
|
|
426
|
+| **测试项** | sortBy 校验 |
|
|
|
427
|
+| **测试类型** | 接口测试 |
|
|
|
428
|
+| **测试工具** | MockMvc |
|
|
|
429
|
+| **测试目的** | 验证 §3.4 |
|
|
|
430
|
+| **前置条件** | L2-A1 可见 |
|
|
|
431
|
+| **测试步骤** | GET `/goods?categoryId=L2-A1&sortBy=foo` |
|
|
|
432
|
+| **预期结果** | 业务失败;「排序参数无效」 |
|
|
|
433
|
+
|
|
|
434
|
+### CGC-API-017 商品列表仅出售中
|
|
|
435
|
+
|
|
|
436
|
+| 要素 | 内容 |
|
|
|
437
|
+|------|------|
|
|
|
438
|
+| **用例编号** | CGC-API-017 |
|
|
|
439
|
+| **测试模块** | C 端商品分类 |
|
|
|
440
|
+| **测试项** | goods_status |
|
|
|
441
|
+| **测试类型** | 接口测试 |
|
|
|
442
|
+| **测试工具** | Apifox |
|
|
|
443
|
+| **测试目的** | 验证 GC8 |
|
|
|
444
|
+| **前置条件** | G-O1 已下架同分类 |
|
|
|
445
|
+| **测试步骤** | GET `/goods?categoryId=L2-A1` |
|
|
|
446
|
+| **预期结果** | **不含** G-O1 |
|
|
|
447
|
+
|
|
|
448
|
+### CGC-API-018 商品列表含停业店商品
|
|
|
449
|
+
|
|
|
450
|
+| 要素 | 内容 |
|
|
|
451
|
+|------|------|
|
|
|
452
|
+| **用例编号** | CGC-API-018 |
|
|
|
453
|
+| **测试模块** | C 端商品分类 |
|
|
|
454
|
+| **测试项** | 浏览层店态 |
|
|
|
455
|
+| **测试类型** | 接口测试 |
|
|
|
456
|
+| **测试工具** | Apifox |
|
|
|
457
|
+| **测试目的** | 验证 GC13 |
|
|
|
458
|
+| **前置条件** | G-B1@S102 停业、出售中 |
|
|
|
459
|
+| **测试步骤** | GET `/goods?categoryId=对应二级` |
|
|
|
460
|
+| **预期结果** | **含** G-B1 |
|
|
|
461
|
+
|
|
|
462
|
+### CGC-API-019 禁用会员仍可读
|
|
|
463
|
+
|
|
|
464
|
+| 要素 | 内容 |
|
|
|
465
|
+|------|------|
|
|
|
466
|
+| **用例编号** | CGC-API-019 |
|
|
|
467
|
+| **测试模块** | C 端商品分类 |
|
|
|
468
|
+| **测试项** | 会员禁用 |
|
|
|
469
|
+| **测试类型** | 接口测试 |
|
|
|
470
|
+| **测试工具** | Apifox |
|
|
|
471
|
+| **测试目的** | 验证 GC2 |
|
|
|
472
|
+| **前置条件** | M2 禁用 Token |
|
|
|
473
|
+| **测试步骤** | 带 Token 调 `/tree`、`/goods` |
|
|
|
474
|
+| **预期结果** | 均 `code=200` |
|
|
|
475
|
+
|
|
|
476
|
+### CGC-API-020 平台改 show 后 goods 拒绝
|
|
|
477
|
+
|
|
|
478
|
+| 要素 | 内容 |
|
|
|
479
|
+|------|------|
|
|
|
480
|
+| **用例编号** | CGC-API-020 |
|
|
|
481
|
+| **测试模块** | C 端商品分类 |
|
|
|
482
|
+| **测试项** | 分类联动 |
|
|
|
483
|
+| **测试类型** | 接口测试 |
|
|
|
484
|
+| **测试工具** | Apifox |
|
|
|
485
|
+| **测试目的** | 验证 §10 |
|
|
|
486
|
+| **前置条件** | 平台将 L2-A1 show 改为 0 |
|
|
|
487
|
+| **测试步骤** | GET `/goods?categoryId=L2-A1` |
|
|
|
488
|
+| **预期结果** | 业务失败 |
|
|
|
489
|
+
|
|
|
490
|
+---
|
|
|
491
|
+
|
|
|
492
|
+## 三、界面测试(Playwright · Chrome)
|
|
|
493
|
+
|
|
|
494
|
+> **路由建议:** A `/#/mall/category/all`;B `/#/mall/category/l1/{id}`;C `/#/mall/category/goods?categoryId=`(以实际为准)
|
|
|
495
|
+
|
|
|
496
|
+### CGC-UI-001 首页点一级进 B 页
|
|
|
497
|
+
|
|
|
498
|
+| 要素 | 内容 |
|
|
|
499
|
+|------|------|
|
|
|
500
|
+| **用例编号** | CGC-UI-001 |
|
|
|
501
|
+| **测试模块** | C 端商品分类 |
|
|
|
502
|
+| **测试项** | HM7 入口 B |
|
|
|
503
|
+| **测试类型** | 界面测试 |
|
|
|
504
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
505
|
+| **测试目的** | 验证 GC5、HM7 |
|
|
|
506
|
+| **前置条件** | 首页已加载;存在 L1-A |
|
|
|
507
|
+| **测试步骤** | 点击首页一级「兽药」 |
|
|
|
508
|
+| **预期结果** | 进入 B 页;可见二级 Tab 与商品列表区 |
|
|
|
509
|
+
|
|
|
510
|
+### CGC-UI-002 首页点更多进 A 页
|
|
|
511
|
+
|
|
|
512
|
+| 要素 | 内容 |
|
|
|
513
|
+|------|------|
|
|
|
514
|
+| **用例编号** | CGC-UI-002 |
|
|
|
515
|
+| **测试模块** | C 端商品分类 |
|
|
|
516
|
+| **测试项** | HM7 入口 A |
|
|
|
517
|
+| **测试类型** | 界面测试 |
|
|
|
518
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
519
|
+| **测试目的** | 验证 GC4 |
|
|
|
520
|
+| **前置条件** | 首页已加载 |
|
|
|
521
|
+| **测试步骤** | 点击类目区「更多」 |
|
|
|
522
|
+| **预期结果** | 进入 A 全部分类页;左右分栏可见 |
|
|
|
523
|
+
|
|
|
524
|
+### CGC-UI-003 A 页左切一级联动右侧
|
|
|
525
|
+
|
|
|
526
|
+| 要素 | 内容 |
|
|
|
527
|
+|------|------|
|
|
|
528
|
+| **用例编号** | CGC-UI-003 |
|
|
|
529
|
+| **测试模块** | C 端商品分类 |
|
|
|
530
|
+| **测试项** | A 页联动 |
|
|
|
531
|
+| **测试类型** | 界面测试 |
|
|
|
532
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
533
|
+| **测试目的** | 验证 GC4、§5.1 |
|
|
|
534
|
+| **前置条件** | A 页已打开;有 L1-A、L1-B |
|
|
|
535
|
+| **测试步骤** | 点击左侧 L1-B |
|
|
|
536
|
+| **预期结果** | 右侧刷新为 L1-B 下二级列表;**不跳转** 新页 |
|
|
|
537
|
+
|
|
|
538
|
+### CGC-UI-004 A 页点二级进 C 独立页
|
|
|
539
|
+
|
|
|
540
|
+| 要素 | 内容 |
|
|
|
541
|
+|------|------|
|
|
|
542
|
+| **用例编号** | CGC-UI-004 |
|
|
|
543
|
+| **测试模块** | C 端商品分类 |
|
|
|
544
|
+| **测试项** | A1 跳转 |
|
|
|
545
|
+| **测试类型** | 界面测试 |
|
|
|
546
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
547
|
+| **测试目的** | 验证 GC4、GC5a |
|
|
|
548
|
+| **前置条件** | A 页右侧有 L2-A1 |
|
|
|
549
|
+| **测试步骤** | 点击「抗生素」 |
|
|
|
550
|
+| **预期结果** | 进入 **C 独立列表页**;**无** Tab;可见路径「兽药 > 抗生素」 |
|
|
|
551
|
+
|
|
|
552
|
+### CGC-UI-005 B 页默认选中首 Tab
|
|
|
553
|
+
|
|
|
554
|
+| 要素 | 内容 |
|
|
|
555
|
+|------|------|
|
|
|
556
|
+| **用例编号** | CGC-UI-005 |
|
|
|
557
|
+| **测试模块** | C 端商品分类 |
|
|
|
558
|
+| **测试项** | 默认 Tab |
|
|
|
559
|
+| **测试类型** | 界面测试 |
|
|
|
560
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
561
|
+| **测试目的** | 验证 §6.1 |
|
|
|
562
|
+| **前置条件** | 从首页进入 L1-A |
|
|
|
563
|
+| **测试步骤** | 观察 Tab 与列表 |
|
|
|
564
|
+| **预期结果** | **排序最靠前** 的二级 Tab 高亮;列表对应该 Tab |
|
|
|
565
|
+
|
|
|
566
|
+### CGC-UI-006 B 页切换 Tab 列表回顶
|
|
|
567
|
+
|
|
|
568
|
+| 要素 | 内容 |
|
|
|
569
|
+|------|------|
|
|
|
570
|
+| **用例编号** | CGC-UI-006 |
|
|
|
571
|
+| **测试模块** | C 端商品分类 |
|
|
|
572
|
+| **测试项** | C1 回顶 |
|
|
|
573
|
+| **测试类型** | 界面测试 |
|
|
|
574
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
575
|
+| **测试目的** | 验证 GC5、C1 |
|
|
|
576
|
+| **前置条件** | B 页列表已下滚 |
|
|
|
577
|
+| **测试步骤** | 点击另一二级 Tab |
|
|
|
578
|
+| **预期结果** | 列表 **回顶**;展示新 Tab 商品 |
|
|
|
579
|
+
|
|
|
580
|
+### CGC-UI-007 搜索栏占位文案
|
|
|
581
|
+
|
|
|
582
|
+| 要素 | 内容 |
|
|
|
583
|
+|------|------|
|
|
|
584
|
+| **用例编号** | CGC-UI-007 |
|
|
|
585
|
+| **测试模块** | C 端商品分类 |
|
|
|
586
|
+| **测试项** | 搜索占位 |
|
|
|
587
|
+| **测试类型** | 界面测试 |
|
|
|
588
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
589
|
+| **测试目的** | 验证 GC3 |
|
|
|
590
|
+| **前置条件** | 打开 A 或 B 或 C 页 |
|
|
|
591
|
+| **测试步骤** | 读取搜索框 placeholder |
|
|
|
592
|
+| **预期结果** | **「搜索兽药、饲料、店铺」** |
|
|
|
593
|
+
|
|
|
594
|
+### CGC-UI-008 点击搜索栏进搜索页
|
|
|
595
|
+
|
|
|
596
|
+| 要素 | 内容 |
|
|
|
597
|
+|------|------|
|
|
|
598
|
+| **用例编号** | CGC-UI-008 |
|
|
|
599
|
+| **测试模块** | C 端商品分类 |
|
|
|
600
|
+| **测试项** | 搜索入口 |
|
|
|
601
|
+| **测试类型** | 界面测试 |
|
|
|
602
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
603
|
+| **测试目的** | 验证 GC-S1 |
|
|
|
604
|
+| **前置条件** | 分类页已加载 |
|
|
|
605
|
+| **测试步骤** | 点击搜索栏 |
|
|
|
606
|
+| **预期结果** | 路由至搜索输入页 |
|
|
|
607
|
+
|
|
|
608
|
+### CGC-UI-009 C 页含搜索栏无 Tab
|
|
|
609
|
+
|
|
|
610
|
+| 要素 | 内容 |
|
|
|
611
|
+|------|------|
|
|
|
612
|
+| **用例编号** | CGC-UI-009 |
|
|
|
613
|
+| **测试模块** | C 端商品分类 |
|
|
|
614
|
+| **测试项** | C 页结构 |
|
|
|
615
|
+| **测试类型** | 界面测试 |
|
|
|
616
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
617
|
+| **测试目的** | 验证 GC5a |
|
|
|
618
|
+| **前置条件** | 从 A 进入 C 页 |
|
|
|
619
|
+| **测试步骤** | 检查页顶结构 |
|
|
|
620
|
+| **预期结果** | 有搜索栏+路径标题;**无** 二级 Tab |
|
|
|
621
|
+
|
|
|
622
|
+### CGC-UI-010 商品卡片字段展示
|
|
|
623
|
+
|
|
|
624
|
+| 要素 | 内容 |
|
|
|
625
|
+|------|------|
|
|
|
626
|
+| **用例编号** | CGC-UI-010 |
|
|
|
627
|
+| **测试模块** | C 端商品分类 |
|
|
|
628
|
+| **测试项** | 列表卡片 |
|
|
|
629
|
+| **测试类型** | 界面测试 |
|
|
|
630
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
631
|
+| **测试目的** | 验证 GC10 |
|
|
|
632
|
+| **前置条件** | 列表有 G-A1 |
|
|
|
633
|
+| **测试步骤** | 检查首卡 |
|
|
|
634
|
+| **预期结果** | 可见主图、名称、售价、店铺名;**不** 展示销量数字 |
|
|
|
635
|
+
|
|
|
636
|
+### CGC-UI-011 切换销量价格排序
|
|
|
637
|
+
|
|
|
638
|
+| 要素 | 内容 |
|
|
|
639
|
+|------|------|
|
|
|
640
|
+| **用例编号** | CGC-UI-011 |
|
|
|
641
|
+| **测试模块** | C 端商品分类 |
|
|
|
642
|
+| **测试项** | 排序 UI |
|
|
|
643
|
+| **测试类型** | 界面测试 |
|
|
|
644
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
645
|
+| **测试目的** | 验证 GC9、§7.3 |
|
|
|
646
|
+| **前置条件** | 列表 ≥2 条不同价/销量 |
|
|
|
647
|
+| **测试步骤** | ① 选「价格升序」② 选「销量降序」 |
|
|
|
648
|
+| **预期结果** | 列表顺序 **随之变化** |
|
|
|
649
|
+
|
|
|
650
|
+### CGC-UI-012 点击商品进详情
|
|
|
651
|
+
|
|
|
652
|
+| 要素 | 内容 |
|
|
|
653
|
+|------|------|
|
|
|
654
|
+| **用例编号** | CGC-UI-012 |
|
|
|
655
|
+| **测试模块** | C 端商品分类 |
|
|
|
656
|
+| **测试项** | 进详情 |
|
|
|
657
|
+| **测试类型** | 界面测试 |
|
|
|
658
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
659
|
+| **测试目的** | 验证 GC11 |
|
|
|
660
|
+| **前置条件** | 列表有商品 |
|
|
|
661
|
+| **测试步骤** | 点击商品卡片 |
|
|
|
662
|
+| **预期结果** | 进入商品详情;URL 含 `goodsId` |
|
|
|
663
|
+
|
|
|
664
|
+### CGC-UI-013 访客与会员均可浏览
|
|
|
665
|
+
|
|
|
666
|
+| 要素 | 内容 |
|
|
|
667
|
+|------|------|
|
|
|
668
|
+| **用例编号** | CGC-UI-013 |
|
|
|
669
|
+| **测试模块** | C 端商品分类 |
|
|
|
670
|
+| **测试项** | 访客/会员 |
|
|
|
671
|
+| **测试类型** | 界面测试 |
|
|
|
672
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
673
|
+| **测试目的** | 验证 GC2 |
|
|
|
674
|
+| **前置条件** | ① 未登录 ② M1 登录 |
|
|
|
675
|
+| **测试步骤** | 分别打开 A/B 页 |
|
|
|
676
|
+| **预期结果** | 均可见分类与列表 |
|
|
|
677
|
+
|
|
|
678
|
+### CGC-UI-014 零商品空态
|
|
|
679
|
+
|
|
|
680
|
+| 要素 | 内容 |
|
|
|
681
|
+|------|------|
|
|
|
682
|
+| **用例编号** | CGC-UI-014 |
|
|
|
683
|
+| **测试模块** | C 端商品分类 |
|
|
|
684
|
+| **测试项** | 列表空态 |
|
|
|
685
|
+| **测试类型** | 界面测试 |
|
|
|
686
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
687
|
+| **测试目的** | 验证 §7.4 |
|
|
|
688
|
+| **前置条件** | 某二级无出售中商品 |
|
|
|
689
|
+| **测试步骤** | 打开该二级列表 |
|
|
|
690
|
+| **预期结果** | 空态文案(如「该分类下暂无商品」) |
|
|
|
691
|
+
|
|
|
692
|
+### CGC-UI-015 分类树失败不白屏
|
|
|
693
|
+
|
|
|
694
|
+| 要素 | 内容 |
|
|
|
695
|
+|------|------|
|
|
|
696
|
+| **用例编号** | CGC-UI-015 |
|
|
|
697
|
+| **测试模块** | C 端商品分类 |
|
|
|
698
|
+| **测试项** | tree 失败 |
|
|
|
699
|
+| **测试类型** | 界面测试 |
|
|
|
700
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
701
|
+| **测试目的** | 验证 GC14 |
|
|
|
702
|
+| **前置条件** | Mock `/tree` 500 |
|
|
|
703
|
+| **测试步骤** | 打开 A 页 |
|
|
|
704
|
+| **预期结果** | 空态/错误提示;**不** 整页白屏 |
|
|
|
705
|
+
|
|
|
706
|
+### CGC-UI-016 商品列表失败空态
|
|
|
707
|
+
|
|
|
708
|
+| 要素 | 内容 |
|
|
|
709
|
+|------|------|
|
|
|
710
|
+| **用例编号** | CGC-UI-016 |
|
|
|
711
|
+| **测试模块** | C 端商品分类 |
|
|
|
712
|
+| **测试项** | goods 失败 |
|
|
|
713
|
+| **测试类型** | 界面测试 |
|
|
|
714
|
+| **测试工具** | Playwright(Chrome) |
|
|
|
715
|
+| **测试目的** | 验证 GC14、§7.6 |
|
|
|
716
|
+| **前置条件** | Mock `/goods` 失败;Tab 仍可见 |
|
|
|
717
|
+| **测试步骤** | 打开 B 页 |
|
|
|
718
|
+| **预期结果** | 列表区空态;Tab 区 **仍展示** |
|
|
|
719
|
+
|
|
|
720
|
+---
|
|
|
721
|
+
|
|
|
722
|
+## 四、业务规则覆盖矩阵
|
|
|
723
|
+
|
|
|
724
|
+| 规则 | UT | API | UI |
|
|
|
725
|
+|------|:--:|:---:|:--:|
|
|
|
726
|
+| GC1 仅平台分类 | — | API-005 | — |
|
|
|
727
|
+| GC2 匿名可读 | — | API-001/019 | UI-013 |
|
|
|
728
|
+| GC3 搜索占位 | — | — | UI-007 |
|
|
|
729
|
+| GC4 A 页/A→C | UT-003 | API-002 | UI-002/003/004 |
|
|
|
730
|
+| GC5 B Tab+列表 | UT-003 | API-006/007 | UI-001/005/006 |
|
|
|
731
|
+| GC5a C 独立页 | — | — | UI-004/009 |
|
|
|
732
|
+| GC6 可见性 | UT-004/006 | API-003/004/008/009/013/020 | — |
|
|
|
733
|
+| GC7 排序 | — | API-007 | — |
|
|
|
734
|
+| GC8 出售中 | UT-010 | API-017 | — |
|
|
|
735
|
+| GC9 四档排序 | UT-007/008/009 | API-014/015/016 | UI-011 |
|
|
|
736
|
+| GC10 卡片字段 | — | API-011 | UI-010 |
|
|
|
737
|
+| GC11 进详情 | — | — | UI-012 |
|
|
|
738
|
+| GC12 展示≠可购 | — | — | — |
|
|
|
739
|
+| GC13 停业/零库存 | — | API-018 | — |
|
|
|
740
|
+| GC14 模块空态 | UT-011/012 | — | UI-015/016 |
|
|
|
741
|
+| GC15 无写接口 | — | — | — |
|
|
|
742
|
+
|
|
|
743
|
+---
|
|
|
744
|
+
|
|
|
745
|
+## 五、自动化映射
|
|
|
746
|
+
|
|
|
747
|
+| 用例 | 建议代码位置 |
|
|
|
748
|
+|------|--------------|
|
|
|
749
|
+| CGC-UT-001~012 | `CategoryAppServiceImplTest.java` |
|
|
|
750
|
+| CGC-API-001~020 | `CategoryAppControllerTest.java` |
|
|
|
751
|
+| CGC-UI-001~016 | `e2e/consumer/category.spec.ts`(Playwright `channel: 'chrome'`) |
|
|
|
752
|
+
|
|
|
753
|
+---
|
|
|
754
|
+
|
|
|
755
|
+## 六、用例统计
|
|
|
756
|
+
|
|
|
757
|
+| 类型 | 数量 |
|
|
|
758
|
+|------|------|
|
|
|
759
|
+| 单元测试 CGC-UT | 12 |
|
|
|
760
|
+| 接口测试 CGC-API | 20 |
|
|
|
761
|
+| 界面测试 CGC-UI | 16 |
|
|
|
762
|
+| **合计** | **48** |
|
|
|
763
|
+
|
|
|
764
|
+---
|
|
|
765
|
+
|
|
|
766
|
+## 七、修订记录
|
|
|
767
|
+
|
|
|
768
|
+| 版本 | 说明 |
|
|
|
769
|
+|------|------|
|
|
|
770
|
+| **v1.0** | 首版;48 用例;覆盖 GC1~GC15、A/B/C 三页、四档排序、HM7 入口 |
|
|
|
771
|
+
|
|
|
772
|
+---
|
|
|
773
|
+
|
|
|
774
|
+*文档版本:v1.0 · 关联《商品分类功能需求.md》v1.0.1、《商品分类技术方案.md》v1.0*
|