mirror of
https://github.com/motajs/template.git
synced 2026-09-24 01:30:18 +08:00
docs(06): capture phase context
This commit is contained in:
parent
bcac8a97e4
commit
b59f8783d5
@ -58,6 +58,17 @@
|
||||
- **D-19:** flag 系统接口较多但逻辑简单,覆盖其公开接口行为。
|
||||
- **D-20:** `data-common/src/common` 由主要测试自然覆盖;无需单独穷举,但若主要测试未触及则补最小直接单测。
|
||||
|
||||
### 战斗系统覆盖深化(仅针对 06-01,`data-system/src/combat`)
|
||||
> 本节由 2026-09-14 的补充讨论得出,深化 D-15。**范围严格限定在战斗系统本身**;凡属顶层实现(`data-state` 的 `calculator` / `CommonAura` / `GuardAura` / 特殊属性语义 / 支援递归)的内容一律不纳入本讨论,由 Phase 6 其它计划负责。
|
||||
|
||||
- **D-21:** 光环集成测试形态:用**测试用 fake `IAuraConverter` / `IAuraView`** 在 `data-system` 内驱动 `EnemyContext` 的光环流水线;**手动装配**(`new EnemyContext()` + `registerAuraConverter` + `setEnemyAt`);复用 06-01 已建立的 `vi.hoisted` 全局 stub + dynamic-import harness。**不引用、不重测顶层真实实现**,明确切开系统与顶层边界。
|
||||
- **D-22:** 常规光环覆盖:`Full`(`haloRange<=0`)/ `Rect`(`haloSquare`)/ `Manhattan` 三种范围**全部覆盖**,并断言**光环范围外的怪物不被加成**。
|
||||
- **D-23:** 嵌套光环覆盖:**一层**(光环施加特殊属性)与**两层**(光环→特殊属性→再经转换器产生新光环→再施加效果)都要覆盖,并含**优先级边界**(新增光环只能影响更低优先级阶段;同/跨优先级传播)。
|
||||
- **D-24:** 优先级链与 DEV 警告码**全部覆盖**:`97`(重复 converter 匹配)、`98`(删除同级/更高优先级光环)、`99`(新增高优先级光环)、`100`(add 与 delete 同时非空)、`101`(局部刷新期间产生/移除已转换光环)。
|
||||
- **D-25:** 系统层效果组合覆盖:**光环基础效果 ↔ 常规查询效果**、**光环特殊效果 ↔ 特殊查询效果**、**final-effect 阶段顺序**、**同/跨优先级顺序**四类组合全部纳入;**显式断言四阶段顺序**(`buildupSpecials` → `buildupBase` → `buildupQuery` → `buildupFinal`)与**阶段间可见性**(前阶段修改被后阶段看到,后阶段不能反向影响前阶段)。
|
||||
- **D-26:** 「属性流水线结果 → 伤害系统」联动:`final-effect` / 光环改完属性后,验证 `DamageContext` 缓存与脏标记随之更新,`getDamageInfo` / `markDirty` / `deleteEnemy` / `with(hero)` 行为正确(注入 fake `IDamageCalculator`)。
|
||||
- **D-27:** `EnemyContext` 覆盖判据:**每个公开方法至少一个正常用例**;边界按需覆盖**警告码、未知/空输入(返回 null 或 no-op)、`resize`/`clear`/`destroy` 生命周期清空与附件解绑**;**`buildup`(全量)与 `requestRefresh`(局部)两条刷新路径都要覆盖**;上述「全接口覆盖」写入 `must_haves.truths` 作为阶段完成判据。
|
||||
|
||||
### the agent's Discretion
|
||||
- 各系统内部具体测哪些函数/边界用例、用例命名与文件切分,由实现者在上述约束下决定;发现接口/设计疑问时按 D-07 立即提问,不自行假设。
|
||||
|
||||
@ -124,6 +135,7 @@
|
||||
- 用户把本次明确定义为**数据端单测切片**,并要求「单测 / 修复」严格分两环节:先写测试验证接口能否运行,发现问题只分析、汇报,确认后才修。
|
||||
- 若对系统内某些设计有疑问,**立刻提问**,不得自行假设或绕过(延续 D-02/D-17)。
|
||||
- 战斗、寻路、触发器、事件是 Phase 6 成功标准点名的关键行为;本切片聚焦其中的战斗、事件、录像、地图、勇士、存读档。
|
||||
- **边界(2026-09-14 补充)**:06-01 的覆盖深化**只针对战斗系统本身**(`data-system/src/combat`)。顶层实现(`data-state` 的 calculator / CommonAura / GuardAura / 特殊属性语义 / 支援递归)与战斗系统无关,不纳入 06-01。
|
||||
|
||||
</specifics>
|
||||
|
||||
@ -134,6 +146,7 @@
|
||||
- 存读档的 CoreState 端到端(需要公开 save/load 入口或可注入后端)未纳入本次;如后续决定引入,需先由用户设计接口。
|
||||
- Phase 5(Legacy 移植)若改动数据端接口,本阶段测试需同步调整。
|
||||
- 执行过程中若出现新的接口/设计问题,按 D-07 暂停并向用户提问。
|
||||
- **顶层实现(`data-state`)的光环转换器语义、特殊属性加成、伤害计算器分支、支援/guard 递归、数据-State 现有测试的改动** —— 均不属 06-01 战斗系统深化范围,由 Phase 6 其它计划负责。
|
||||
|
||||
</deferred>
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
|
||||
**Date:** 2026-09-14
|
||||
**Phase:** 6-单元测试
|
||||
**Areas discussed:** 测试层级与 fixture 策略, 问题记录与门禁策略, 存读档等价判定, 怪物数据验证含义
|
||||
**Areas discussed:** 测试层级与 fixture 策略, 问题记录与门禁策略, 存读档等价判定, 怪物数据验证含义, 光环测试形态, 光环覆盖深度, 系统层效果组合, EnemyContext 覆盖判据
|
||||
|
||||
---
|
||||
|
||||
@ -126,6 +126,151 @@
|
||||
|
||||
---
|
||||
|
||||
## 补充讨论(2026-09-14):战斗系统覆盖深化(仅 06-01)
|
||||
|
||||
> 范围严格限定在战斗系统本身(`data-system/src/combat`);顶层实现(`data-state` 的 calculator / CommonAura / GuardAura / 特殊属性语义 / 支援递归)不纳入本讨论。
|
||||
|
||||
### 光环测试形态
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 系统测试在 data-system,顶层实现验证在 data-state | 明确系统功能与顶层实现分工 | ✓(顶层部分经用户后续校正后移出本讨论) |
|
||||
| data-system/combat 内 | 真实 EnemyContext + 真实 converter,用假 Enemy | |
|
||||
| 两处分工 | 类单测留 data-state,集成放 data-system | |
|
||||
|
||||
**User's choice:** 系统功能测试归 `data-system`;顶层验证归 `data-state`(顶层内容不属本次讨论)
|
||||
**Notes:** 后续校正:本次仅讨论 06-01 战斗系统问题,顶层实现无关内容不纳入。
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 手动装配(推荐) | new EnemyContext + registerAuraConverter + setEnemyAt | ✓ |
|
||||
| 经 CoreState | 集成度高但重 | |
|
||||
| 两者都要 | 核心手动 + CoreState 烟雾 | |
|
||||
|
||||
**User's choice:** 手动装配
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 保留并新增(推荐) | 类单测 + 新增集成测试,互补 | ✓ |
|
||||
| 迁移合并 | 改写为集成用例 | |
|
||||
| 只要嵌套集成 | | |
|
||||
|
||||
**User's choice:** 保留并新增
|
||||
**Notes:** 校正后该 data-state 类单测改动不属本次讨论范围;战斗系统内沿用「保留并新增」原则。
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 复用 06-01 harness(推荐) | vi.hoisted 全局 stub + 动态 import 包 | ✓ |
|
||||
| 真实顶层 import | 直接 import @user/data-state | |
|
||||
|
||||
**User's choice:** 复用 06-01 harness
|
||||
|
||||
### 光环覆盖深度
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 三种范围 + 范围外(推荐) | Full / Rect / Manhattan + 范围外不生效 | ✓ |
|
||||
| 只覆盖一种 | | |
|
||||
| 你决定 | | |
|
||||
|
||||
**User's choice:** 三种范围 + 范围外
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 一层 + 两层(推荐) | 光环→特殊属性;光环→特殊属性→再转换出光环 | |
|
||||
| 仅一层 | | |
|
||||
| 两层 + 优先级边界 | | ✓ |
|
||||
|
||||
**User's choice:** 两层 + 优先级边界
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 全部警告码(推荐) | 97/98/99/100/101 | ✓ |
|
||||
| 只 98/99 | | |
|
||||
| 不专门覆盖 | | |
|
||||
|
||||
**User's choice:** 全部警告码 97/98/99/100/101
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 纳入(推荐) | 支援怪吃到位置光环加成 + 递归累加 | ✓ |
|
||||
| 不纳入 | | |
|
||||
| 只补交叉点 | | |
|
||||
|
||||
**User's choice:** 纳入
|
||||
**Notes:** 后续校正:支援/guard 的验证归属顶层(`data-state`),不属 06-01 战斗系统,本次排除。
|
||||
|
||||
### 系统层效果组合与边界
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 光环↔常规查询 | query 读到光环改过的属性 | ✓ |
|
||||
| 光环特殊↔特殊查询 | 同优先级链上的 add/delete/modify 相互影响 | ✓ |
|
||||
| final-effect 阶段顺序 | final 最后执行、不能查询上下文 | ✓ |
|
||||
| 优先级/阶段顺序 | 同优先级内顺序、跨优先级传播 | ✓ |
|
||||
|
||||
**User's choice:** 四类全纳入
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 明确切开(推荐) | data-system 只用 fake 效果/光环驱动,不重测顶层语义 | ✓ |
|
||||
| 允许少量交叉 | | |
|
||||
| 你决定 | | |
|
||||
|
||||
**User's choice:** 明确切开
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 断言顺序 + 可见性(推荐) | 四阶段顺序 + 阶段间可见性 | ✓ |
|
||||
| 只断言结果 | | |
|
||||
| 只断言关键顺序 | | |
|
||||
|
||||
**User's choice:** 断言顺序 + 可见性
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 纳入系统伤害流程(推荐) | 属性→伤害联动,注入 fake 计算器 | ✓ |
|
||||
| 不纳入 | | |
|
||||
| 只加烟雾 | | |
|
||||
|
||||
**User's choice:** 纳入系统伤害流程
|
||||
|
||||
### EnemyContext 覆盖判据
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 全接口 + 按需边界(推荐) | 每个公开方法≥1 正常用例 | ✓ |
|
||||
| 全接口 + 全边界 | 最严 | |
|
||||
| 只关键接口 | | |
|
||||
|
||||
**User's choice:** 全接口 + 按需边界
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 警告码 | 97/98/99/100/101/110 | ✓ |
|
||||
| 未知/空输入 | null 或 no-op | ✓ |
|
||||
| 生命周期清空 | resize/clear/destroy | ✓ |
|
||||
| 脏标记守卫 | markDirty/requestRefresh 守卫 | |
|
||||
|
||||
**User's choice:** 警告码、未知/空输入、生命周期清空
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 写入 must_haves(推荐) | 作为阶段完成判据 | ✓ |
|
||||
| 只进验收标准 | | |
|
||||
|
||||
**User's choice:** 写入 must_haves
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| 两条都要(推荐) | 全量 buildup + 局部 requestRefresh | ✓ |
|
||||
| 只全量 | | |
|
||||
| 只局部 | | |
|
||||
|
||||
**User's choice:** 两条都要
|
||||
|
||||
---
|
||||
|
||||
## the agent's Discretion
|
||||
|
||||
- 各系统内部具体测哪些函数/边界、用例命名与文件切分。
|
||||
@ -135,3 +280,4 @@
|
||||
- Phase 6 非数据端覆盖(渲染/legacy)延后。
|
||||
- CoreState 端到端存读档(需公开入口或可注入后端)未纳入本次。
|
||||
- Phase 5 若改动数据端接口,本阶段测试需同步调整。
|
||||
- 顶层实现(`data-state` 的 calculator / CommonAura / GuardAura / 特殊属性语义 / 支援递归)与 data-state 现有测试改动不属 06-01 战斗系统深化讨论。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user