SuperAPI AI 工具集

testing-patterns

测试与质量

查看项目

更新于 10-16 22:43

技能介绍

Testing Patterns 是一套面向 Godot 项目中自动化测试的专家蓝图,核心基于 GUT(Godot Unit Test)框架,覆盖断言、mock/stub、异步测试与集成测试等验证技术。

用途 为 Godot 项目建立可重复、可维护的自动化测试体系,覆盖单元测试与集成测试,并支持在 CI/CD 中无人值守运行。

主要能力

  • 测试脚本:提供 integration_test_base.gd(GUT 集成测试基类,含自动清理与场景辅助)和 headless_test_runner.gd(面向 CI/CD 的无头测试运行器,支持 JUnit XML 输出与退出码处理)。
  • 断言模式:涵盖相等、比较(gt/lt/gte/lte)、布尔、null、数组包含关系以及信号相关断言。
  • 信号测试:需先 watch_signals,再使用 assert_signal_emitted 与 assert_signal_emitted_with_parameters 验证信号及其参数。
  • 异步测试:示例使用 await wait_seconds(1.0) 等待延迟动作后断言状态。
  • Mock/Stub:通过 double() 与 stub() 替换依赖返回值,用于隔离被测对象。
  • 集成测试:实例化测试关卡场景,模拟多次攻击与逐帧等待,验证敌人死亡与得分增加。
  • 手工测试清单:覆盖玩法、UI、音频、性能四类检查项。
  • 运行时验证辅助:validation.gd 提供 assert_valid_health、assert_valid_position 等静态检查。
  • 测试组织:按 unit、integration、fixtures 分目录。
  • 最佳实践:包括测试边界情况(零伤害、负伤害)、每测试独立隔离、优先测试关键路径(核心玩法、存读档、关卡切换、UI 交互)。

使用方式

  1. 从 AssetLib 下载 “GUT - Godot Unit Test”。
  2. 在 Project Settings → Plugins 中启用。
  3. 创建 res://test/ 目录。
  4. 编写 extends GutTest 的测试脚本,使用 before_each/after_each 做每次测试的初始化与清理。
  5. 可通过编辑器中的 GUT 面板运行,或命令行执行:godot --headless -s addons/gut/gut_cmdln.gd。

“测试中绝不要做”清单

  • 绝不测试实现细节(如私有变量),应测试公开行为。
  • 绝不在测试间共享状态,用 before_each() 保证干净环境。
  • 绝不用 sleep() 计时,应使用 GUT 的 wait_seconds() 或手动步进帧。
  • 绝不在 after_each() 中跳过清理,必须释放节点。
  • 绝不测试未播种的随机性,应使用 seed(12345) 保证可重复。
  • 绝不忘记监听信号,断言信号前必须调用 watch_signals。

适用场景 Godot 游戏项目的单元测试与集成测试、CI/CD 流水线中的自动化验证、战斗与存档等关键系统的回归测试。

限制 资料仅提供示例与模式,未说明具体 GUT 版本兼容范围、安装之外的配置、定价或平台信息,这些内容暂未提供。