# 测试方案 - 2026-05-07-18-42-53 ## 静态检查 - 执行 `npm run lint`,确认 TypeScript 类型检查通过。 - 执行 `npm run build`,确认生产构建通过。 ## 单元或集成测试 - 使用现有 API 和页面构建流程做集成验证: - `GET /api/projects` 返回项目数据且包含共享 `moduleStyles`。 - `PATCH /api/projects/:projectId/module-styles` 可保存构件 ID。 - 重新读取项目后构件 ID 保持一致。 ## 关键业务场景验证 1. 项目库 3D 模型构件层级修改 ID 后,进入逆向工作区可视化工具栏显示同一 ID。 2. 逆向工作区修改 ID 后,返回项目库 3D 模型显示同一 ID。 3. 可视化工具栏不再显示 Metadata。 4. 融合视角下方只有一个 DICOM 切片范围滑条,不再暴露起点/终点输入。 5. 位姿控制区域标题显示“模型位姿”。 ## 医学影像数据相关边界验证 - 切片范围滑条最小值不小于 1,最大值不超过 DICOM 总切片数。 - API 请求仍使用合理 `start/end`,避免空体数据。 - 构件 ID 限定为 `1~255`,防止与背景 `0` 冲突。 ## 回归风险 - 共享 moduleStyles 可能影响已有颜色、透明度、显示隐藏控制。 - 融合体请求频繁变化可能导致加载状态更新较频繁。 ## 人工审核状态 用户已声明本次不需要二次人工确认,按默认执行确认规则直接执行。 ## 执行结果 - `npm run lint`:通过。 - `npm run build`:通过,仅保留 Vite 大 chunk 体积提醒。 - 重新部署:已通过 `tmux` 重启 `revoxelseg-dicom` 服务,运行在 `http://0.0.0.0:4000/`。 - `curl -I http://127.0.0.1:4000/`:返回 `HTTP/1.1 200 OK`。 - `GET /api/projects/head-ct-demo`:返回默认项目,包含 9 个 STL 构件的 `moduleStyles`。 - `PATCH /api/projects/head-ct-demo/module-styles`:可修改构件 ID 和可见性。 - 构件 ID 边界:提交 `partId=0` 后服务端返回 `partId=1`,符合不可修改为 0 的约束。