我对 GML 和 TDD 非常熟悉。我想练习测试驱动开发和对 Game Maker Language,GML 的单元测试。由于 GML 是事件驱动的,有可能吗?我没有幸找到很多关于如何在 GML 中实现单元测试和测试驱动开发的示例或教程。
你如何用游戏制作者语言编写单元测试?
我对 GML 和 TDD 非常熟悉。我想练习测试驱动开发和对 Game Maker Language,GML 的单元测试。由于 GML 是事件驱动的,有可能吗?我没有幸找到很多关于如何在 GML 中实现单元测试和测试驱动开发的示例或教程。
你如何用游戏制作者语言编写单元测试?
我已经开始专门为 GML 编写一个测试框架。它被称为 hobo_test,你可以在github上找到它。目标是提供一组对象/脚本,您可以将它们拖放到任何项目中(从查找器中),然后开始编写一些简单的测试。
with(o_player)
{
before_lives = num_lives
take_damage();
it("should decrease the number of lives", before_lives-1, num_lives);
}
这将更新TEST
对象上的计数器,该计数器将绘制所有测试的结果(绿点表示成功,红色表示失败)。在测试失败时,它将打印出您编写的包含预期和实际结果的应该语句。
我发现 GML 的局限性导致我编写了很多辅助方法并与缺乏异常处理作斗争。
据我所知,这是 GameMaker 唯一现有的测试框架,要在开发游戏时实现完整的 TDD,还有很长的路要走。(我能够用当前迭代编写扫雷克隆)。我计划继续发展该项目,并希望使其更强大且更易于使用。
您可以对任何可以单独调用的东西进行单元测试,并得到可验证的结果。
我不知道 GML,但我可以从 wikipedia 中看到它是一种特殊用途的脚本语言。如果您设法从通常运行的任何地方的外部调用这样的脚本,并且您设法检查可以测试它的结果。
然而,
"GML is heavily integrated with the Game Maker environment."
可能意味着您不能单独调用任何脚本或函数。