Просмотр исходного кода

📝 docs(stories): 更新故事006.016状态与组件模拟策略记录

### 故事状态更新:
1. **Acceptance Criteria更新**:
   - GoodsParentChildPanel:11/17通过,6个失败(原13个失败)
   - ChildGoodsList:14/14通过,全部修复(原11个失败)
   - BatchSpecCreatorInline:15/23通过,8个失败

2. **组件模拟策略记录强化**:
   - 新增第11条Completion Note详细记录组件模拟策略要求
   - React Query必须使用真实实现,子组件严格禁止模拟
   - 第三方UI库允许模拟,API客户端统一模拟rpcClient

3. **变更日志更新**:
   - 添加版本1.3:组件模拟策略明确化,移除测试文件中的子组件模拟
   - 更新调试日志:记录组件模拟策略要求明确过程

4. **文件列表更新**:
   - 记录GoodsParentChildPanel测试文件移除子组件模拟的修改

### 后续工作:
- 剩余测试失败(GoodsParentChildPanel 6个,BatchSpecCreatorInline 8个)留待后续开发继续修复
- 已建立正确的组件模拟策略基础,确保测试真实性和集成完整性

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 1 месяц назад
Родитель
Сommit
de7c44de69

+ 22 - 3
docs/stories/006.016.parent-child-goods-management-test-fix-api-mock-normalization.story.md

@@ -9,9 +9,9 @@ In Progress
 **so that** 所有测试都能通过,为后续开发提供可靠测试保障
 
 ## Acceptance Criteria
-1. GoodsParentChildPanel组件所有测试通过(当前17个测试中13个失败)
-2. ChildGoodsList组件所有测试通过(当前14个测试中11个失败
-3. BatchSpecCreatorInline组件所有测试通过(当前23个测试中8个失败)
+1. GoodsParentChildPanel组件所有测试通过(当前17个测试中11个通过,6个失败)
+2. ChildGoodsList组件所有测试通过(当前14个测试中14个通过,全部修复
+3. BatchSpecCreatorInline组件所有测试通过(当前23个测试中15个通过,8个失败)
 4. 所有测试用例符合API模拟规范,使用统一的`rpcClient`模拟,而不是分别模拟各个客户端管理器
 5. 测试环境配置正确,无Mock配置不完整或过时问题
 6. 文本匹配准确,无重复文本或找不到文本的问题
@@ -174,6 +174,7 @@ In Progress
 | 2025-12-15 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
 | 2025-12-15 | 1.1 | 开始实施测试修复:完成测试失败分析,修复GoodsParentChildPanel文本重复问题 | James |
 | 2025-12-15 | 1.2 | 阶段性修复:GoodsParentChildPanel测试11/17通过,ChildGoodsList测试10/14通过,API模拟规范已统一 | James |
+| 2025-12-15 | 1.3 | 组件模拟策略明确化:明确React Query必须用真实实现、子组件禁止模拟,移除测试文件中的子组件模拟,为后续修复建立基础 | James |
 
 ## Dev Agent Record
 *此部分由开发代理在实现过程中填写*
@@ -186,6 +187,7 @@ In Progress
 - 2025-12-15: 修复GoodsParentChildPanel测试中的文本重复问题
 - 2025-12-15: 修复GoodsParentChildPanel子商品状态、设为父商品、标签页切换等测试
 - 2025-12-15: 分析ChildGoodsList测试失败详情,API模拟已规范化
+- 2025-12-15: 明确组件模拟策略要求,移除GoodsParentChildPanel测试中的子组件模拟
 
 ### Completion Notes List
 1. **测试失败分析完成**:
@@ -256,6 +258,22 @@ In Progress
      2. 按照API模拟规范重构BatchSpecCreatorInline测试文件
      3. 运行所有父子商品管理相关测试套件验证整体状态
 
+11. **组件模拟策略明确化与测试文件更新**:
+    - **组件模拟策略要求明确**:
+      1. **React Query库必须使用真实实现**: `@tanstack/react-query`(QueryClient和useQueryClient)必须使用真实实现,确保状态管理逻辑正确
+      2. **子组件严格禁止模拟**: 项目内部的子组件(如`BatchSpecCreatorInline`、`ChildGoodsList`)必须使用实际组件进行集成测试,避免掩盖真实交互行为
+      3. **第三方UI库允许模拟**: `sonner`(Toast通知库)、`lucide-react`(图标库)等UI库允许使用最小化模拟
+      4. **API客户端统一模拟**: 必须统一模拟`@d8d/shared-ui-components/utils/hc`中的`rpcClient`函数,符合API模拟规范
+    - **测试文件修复**:
+      - 从`GoodsParentChildPanel.test.tsx`中删除`BatchSpecCreatorInline`和`ChildGoodsList`的组件模拟,改用真实组件
+      - 遵循"子组件必须使用真实实现"原则,确保集成测试的真实性
+      - 保持API模拟规范化,使用统一`rpcClient`模拟和`createMockResponse`辅助函数
+    - **本次修复总结**:
+      - 明确了组件模拟策略要求并记录在故事文档中
+      - 移除了不符合策略的子组件模拟
+      - 为后续测试修复建立了正确的组件模拟基础
+      - 剩余测试失败(GoodsParentChildPanel的6个、BatchSpecCreatorInline的8个)留待后续开发继续修复
+
 ### File List
 **已修改文件:**
 1. `packages/goods-management-ui-mt/tests/unit/GoodsParentChildPanel.test.tsx`
@@ -264,6 +282,7 @@ In Progress
    - 修复"设为父商品"按钮测试:设置`spuId={-1}`使按钮显示
    - 修复标签页切换测试:使用`getAllByText`处理多个"批量创建"标签
    - 保持API模拟规范一致性:使用统一`rpcClient`模拟和`createMockResponse`辅助函数
+   - 移除子组件模拟:删除`BatchSpecCreatorInline`和`ChildGoodsList`的模拟,使用真实组件进行集成测试
 
 2. `packages/goods-management-ui-mt/tests/unit/ChildGoodsList.test.tsx`
    - 按照API模拟规范重构:统一模拟`rpcClient`函数,移除直接模拟`goodsClientManager`