# tests/unit/example_test.gd — 示例测试:项目测试协议的活样板(gate-check 硬性要求 ≥1 示例测试) # 运行:godot --headless --script tests/unit/example_test.gd # 协议要点(D2 冒烟协议): # extends SceneTree 以获得 quit(code);断言失败 → push_error + quit(1);全绿 → quit(0) # --script 模式无 autoload 且无全局标识符(裸引用 ConfigDB = parse error)—— # 涉及表值的测试须显式实例化 ConfigDB,期望由表读值推导不写死 # 第一个真实测试:复制本文件为 tests/unit//__test.gd 并替换占位断言 extends SceneTree const Kit := preload("res://tests/unit/test_kit.gd") # T6 收口:check/汇总退出样板单点 func _init() -> void: # oracle: design/engineering/test-conventions.md:37(套件协议模板——执行载体与退出码范例组) Kit.check("headless SceneTree 协议可用(quit(code) 通道)", _test_headless_protocol()) Kit.check("命名规范可执行:test_[scenario]_[expected]", _test_naming_convention_followed()) quit(Kit.finish("example_test")) func _test_headless_protocol() -> bool: # 占位断言:验证脚本本身在 SceneTree 上下文可执行。 # 真实测试写法示例(引用不执行): # var cfg := ConfigDBStub.new() # 显式实例化,非全局标识符 # return cfg.action_economy.ap_per_round >= 1 return true func _test_naming_convention_followed() -> bool: # 占位断言:本文件函数名均以 test_ 前缀 + 场景_期望 结构(docs/code-conventions.md) return true