文档(测试判据升级): 单元层写法判据落文——「测试直接调用被测函数」升为「从领域类对外方法进、断言钉对外可观测面(返回值/信号/查询接口/落盘内容)」,内部字段直查降受控例外(无公开可观测面可钉才允许、对照表注明理由;存量不回头清扫、被批次触碰时顺带换代);§8.7 审计三件事→四件事(增核受控例外申报);README 层级表单元行判什么对齐+集成节立集成旅程清单(现状五行:存档⇄RNG往返/旧档迁移续玩/断点附随件与事件日志/关卡图断点重生成同图/回放确定性parity闸11,登记批按git考据:两件出身断言迁移批2026-10-23);architecture v1.21 测试域三层承载表单元行同步;待办清单登记「测试判据升级」条目(批1落文+批2试点归位,2026-10-28 plan批准+草案过目后落笔)

This commit is contained in:
DKChan committed 2026-10-28 04:51:42 +08:00
1 parent 514457d132
commit 145c18658b
5 files changed
+35 -8

No files matched your search

@@ -2,8 +2,8 @@
## 文档状态
- 版本:1.20
- 最近更新:2026-10-28(迭代 39 反哺落文——冒险域拆件三新件转已实装登记+RunLedger 退役注记+拆分定稿节转现状+unit_container 补 check_trigger_unlocks)
- 版本:1.21
- 最近更新:2026-10-28(测试判据升级——测试与质量域三层承载表单元行判什么对齐新写法判据:从对外方法进、钉对外可观测面,判据正文归 test-conventions §8.2)
- 引擎:Godot 4.7.2-stable(GDScript 单语言;2026-09-07 锁定)
- 评审模式:solo(`review-mode.txt`,2026-09-12 用户拍板——TD/LP 门禁按 solo 跳过,用户授权架构产出自主推进、迭代期回调)
- 覆盖 GDD:现行全集(根索引=`design/gdd/02-系统清单.md`,文档树构成以根索引为准)
@@ -285,7 +285,7 @@
| 层 | 判什么 | 承载 | 入闸 |
|---|---|---|---|
| 冒烟测试 | 这版活着吗(零逻辑判定) | `game/tests/smoke_boot.tscn/.gd` | `run_smoke.py`(闸 00) |
| 单元测试 | 最单元的逻辑代码对不对 | `game/tests/unit/` | `run_all.gd`(闸 02) |
| 单元测试 | 领域类的原子行为对不对(从对外方法进、钉对外可观测面——写法判据归 test-conventions §8.2) | `game/tests/unit/` | `run_all.gd`(闸 02) |
| 集成测试 | 跨系统闭环对不对 | `game/tests/integration/` | 同上(同一入口同一协议) |
| 系统测试 | 真实玩法路径断言面 | `game/tests/system_test.gd` | `run_system_test.py`(闸 01) |
| UI 探针+渲染 golden | 场景切换与观感 | `game/probe/*.tscn` 探针 | `probe_gate.sh`(闸 03/04)、`render_gate.sh`(闸 05) |
+4 -3
View File
@@ -76,8 +76,8 @@
### 8.2 四层与真实入口
- **单元**:不依赖场景树和真实宿主的纯逻辑;测试直接调用被测函数。
- **接口**:模块边界的公开契约——数据表加载、存档与断点、事件载荷、命令接口;测试从公开入口进出。
- **单元**:不依赖场景树和真实宿主的纯逻辑;测试从领域类的对外方法进出,断言钉对外可观测面(返回值/信号/查询接口/落盘内容)。内部字段直查=受控例外:仅当该行为没有公开可观测面可钉时允许,对照表该行注明理由;存量不回头清扫,被批次触碰时顺带换代。
- **接口**:模块边界的公开契约——数据表加载、存档与断点、事件载荷、命令接口;测试从公开入口进出。接口级断言随单元套件落(`unit/contracts/`),不另设承载目录。
- **集成**:跨宿主的接线、持久、生命周期——例如 LevelRunner 把 level_counters 传给 BattleOrchestrator、两场战斗共享同一个桶、断点续玩;测试必须实例化真实宿主链,禁止用裸 EffectEngine 代替。
- **探针/golden**:玩家可达性与观感;真实实例化场景、驱动真实输入。
@@ -117,11 +117,12 @@
### 8.7 独立验收审计
合并前由没有参与实现的会话或子代理做一次审计。审计只读需求卡片、实际对照表、diff、测试文件和实现报告,自己跑最窄测试抽查,不采信报告里的「已全绿」。审计至少做三件事:
合并前由没有参与实现的会话或子代理做一次审计。审计只读需求卡片、实际对照表、diff、测试文件和实现报告,自己跑最窄测试抽查,不采信报告里的「已全绿」。审计至少做四件事:
1. 逐行核对对照表:测试存在、真的执行、尾缀能 grep 到、真实入口没有绕过改动点;
2. 抽查撤销证明:每张任务卡至少一条,按记录复现红/绿;
3. 检查测试削弱:删除断言、放宽阈值、缩小扫描面、换下层直调,逐处要卡片申报或用户批准。
4. 核对内部字段直查的受控例外:直查行是否已在对照表注明理由(该行为无公开可观测面可钉)。
审计报告落 `reports/iter<N>-验收审计-<日期>.md`,逐行写「通过/缺漏/例外及依据」。未通过不得合并。测试执行两入口铁规不变:审计在迭代 loop 内启动的子代理算 loop;另开会话须用户点名。