Files
bim_engine/.sisyphus/notepads/section-axis-integration/qa-instructions.md

213 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Task 4: 最终验证指令
## 前置条件检查
在开始验证前,确保:
1. Demo 已启动:`npm run dev:demo`
2. 浏览器打开 localhost通常是 http://localhost:5173
3. 3D 引擎已初始化:控制台检查 `window.bimEngine?.engine` 不为 null
4. 模型已加载3D 场景中可见 BIM 模型
## 验证步骤16 项验收标准)
### 场景 1: 打开弹窗时4 项)
**操作**:点击工具栏的"轴向剖切"按钮
**预期结果**
- [ ] 弹窗正常显示在容器右下角
- [ ] 控制台输出:
```
[Engine] Activating section axis: x
```
- [ ] **视觉确认**:模型被 X 轴平面剖切(可见内部结构)
- X 轴是前后方向,模型应该被一个垂直平面切开
- 能看到模型内部的墙、梁、柱等结构
- [ ] UI 状态X 按钮显示为激活状态(高亮或不同颜色)
**如果失败**
- 如果控制台输出 `[SectionAxisDialogManager] Engine not initialized`,说明未调用 `initEngine()`
- 如果没有剖切效果,检查模型是否加载完成
---
### 场景 2: 切换到 Y 轴3 项)
**操作**:点击 Y 按钮
**预期结果**
- [ ] 控制台输出(按顺序):
```
[SectionAxisDialogManager] 切换轴向: y
[Engine] Deactivating section axis: x
[Engine] Activating section axis: y
```
- [ ] **视觉确认**:模型截面从 X 轴方向变为 Y 轴方向
- Y 轴是上下方向,模型应该被水平平面切开
- 可以看到楼层的横截面
- [ ] UI 状态Y 按钮激活X 按钮恢复普通状态
**控制台验证**
```javascript
window.bimEngine?.engine.getCurrentSectionAxis() // 应返回 'y'
```
---
### 场景 3: 切换到 Z 轴3 项)
**操作**:点击 Z 按钮
**预期结果**
- [ ] 控制台输出(按顺序):
```
[SectionAxisDialogManager] 切换轴向: z
[Engine] Deactivating section axis: y
[Engine] Activating section axis: z
```
- [ ] **视觉确认**:模型截面变为 Z 轴方向
- Z 轴是左右方向,模型应该被侧面垂直平面切开
- [ ] UI 状态Z 按钮激活Y 按钮恢复普通状态
**控制台验证**
```javascript
window.bimEngine?.engine.getCurrentSectionAxis() // 应返回 'z'
```
---
### 场景 4: 幂等性测试1 项)
**操作**:当前 Z 轴激活,再次点击 Z 按钮
**预期结果**
- [ ] 控制台输出:
```
[SectionAxisDialogManager] 切换轴向: z
[Engine] Section axis z already active, skipping.
```
- [ ] **无额外 API 调用**(没有 "Deactivating" 或 "Activating" 日志)
- [ ] 视觉效果不变
---
### 场景 5: 隐藏按钮1 项)
**操作**:点击"隐藏"按钮(眼睛图标)
**预期结果**
- [ ] 控制台输出:
```
[SectionAxisDialogManager] 隐藏切换(暂不支持): true/false
```
- [ ] **无报错**:不应该有 JavaScript 错误
- [ ] 视觉效果不变(因为功能未实现)
---
### 场景 6: 反向按钮1 项)
**操作**:点击"反向"按钮(双向箭头图标)
**预期结果**
- [ ] 控制台输出:
```
[SectionAxisDialogManager] 反向剖切(暂不支持)
```
- [ ] **无报错**:不应该有 JavaScript 错误
- [ ] 视觉效果不变(因为功能未实现)
---
### 场景 7: 关闭弹窗2 项)
**操作**点击弹窗关闭按钮X
**预期结果**
- [ ] 控制台输出:
```
[Engine] Deactivating all section axis
```
- [ ] **视觉确认**:模型恢复完整显示(不再被剖切)
- [ ] 工具栏按钮恢复普通状态(不再激活)
**控制台验证**
```javascript
window.bimEngine?.engine.getCurrentSectionAxis() // 应返回 null
```
---
### 场景 8: 边界情况 - 快速切换1 项)
**操作**:重新打开弹窗,快速连续点击 X → Y → Z → X
**预期结果**
- [ ] 每次切换都有正确的控制台日志输出
- [ ] 最终状态X 轴激活
- [ ] 视觉效果:模型被 X 轴平面剖切
- [ ] 无 JavaScript 错误
**控制台验证**
```javascript
window.bimEngine?.engine.getCurrentSectionAxis() // 应返回 'x'
```
---
### 场景 9: 边界情况 - 重新打开弹窗(额外验证)
**操作**:关闭弹窗后再次打开
**预期结果**
- [ ] 默认激活 X 轴(而不是上次的轴向)
- [ ] 控制台输出:`[Engine] Activating section axis: x`
---
## 验证工具
### 手动 API 测试(可选)
在控制台运行以下命令测试 API
```javascript
// 检查引擎实例
const engine = window.bimEngine?.engine;
console.log('Engine instance:', engine);
// 测试激活方法
engine.activateSectionAxis('x'); // 应激活 X 轴
engine.activateSectionAxis('x'); // 应输出 "already active"
// 测试切换
engine.activateSectionAxis('y'); // 应先停用 X再激活 Y
// 测试停用
engine.deactivateSectionAxis(); // 应停用所有剖切
// 检查状态
console.log('Current axis:', engine.getCurrentSectionAxis()); // null
```
---
## 成功标准
✅ **所有 16 项验收标准通过**
✅ **控制台无 JavaScript 错误**
✅ **日志输出顺序正确**
✅ **视觉效果符合预期**
---
## 如果发现问题
记录以下信息:
1. **场景编号**和**操作步骤**
2. **实际结果**(控制台输出、视觉效果)
3. **错误信息**(如果有)
4. **浏览器和版本**
将问题记录到 `.sisyphus/notepads/section-axis-integration/issues.md`