28 lines
1.6 KiB
GDScript
28 lines
1.6 KiB
GDScript
# 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/<system>/<system>_<feature>_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
|