---
title: 测试文档
order: 4
category: atom
---

## 1. 测试目标

覆盖 `PisellHierarchicalSummaryList` 的渲染、展开/收起交互（含手风琴）、层级限制、受控/非受控、聚合能力与样式规则（value 右对齐、label 可换行、value 不换行）。

## 2. 测试环境

- React 18
- Storybook（用于人工回归）
- Vitest + Testing Library（用于单测）

## 3. 测试用例

### 3.1 基础渲染

- **TC-001**：仅 `items`（最小字段 label）时能正常渲染，不报错
- **TC-002**：`itemsCount` 存在时展示 `N items`
- **TC-003**：`infoTooltip` 存在时展示 info icon，hover 能看到 tooltip
- **TC-004**：`extra` 存在时在 value 后展示轻量操作区

### 3.2 展开/收起交互

- **TC-010**：有 children 的行展示展开箭头；无 children 的行不展示
- **TC-011**：点击整行触发展开/收起（与点击箭头逻辑一致）
- **TC-012**：键盘 Enter/Space 可触发展开/收起（可访问性）
- **TC-013**：`defaultExpandedLevel` 生效：初始化展开到指定层级

### 3.3 受控/非受控

- **TC-020**：受控 `expandedKeys` 时：点击行触发 `onExpandedKeysChange`
- **TC-021**：非受控时：点击行可展开/收起且内部状态更新

### 3.4 手风琴

- **TC-030**：`accordion=true` 时，同一父级下展开一个项会收起其他兄弟项

### 3.5 层级限制

- **TC-040**：`maxRenderLevel` 限制后，超过层级不再渲染 children
- **TC-041**：`maxExpandLevel` 限制后，超过层级不显示展开箭头且不可展开

### 3.6 聚合

- **TC-050**：`aggregate.mode='sum'` 且父级未传 `value` 时，父级 value 展示聚合结果
- **TC-051**：父级已传 `value` 时优先生效（不被聚合覆盖）

### 3.7 样式与排版（人工/截图比对为主）

- **TC-060**：value 列右对齐，纵向扫读对齐稳定
- **TC-061**：label 可换行；value 不换行
- **TC-062**：缩进规则：L2+ 按 indent / levelConfig.indent 生效

## 4. Bug 汇总

| 编号 | 描述 | 复现路径 | 严重程度 | 状态 | 备注 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |

