我是GML和TDD的超级n00bs。我想对Game Maker Language,GML进行测试驱动开发和单元测试。是否可能因为GML是事件驱动的?我没有找到很多关于如何在GML中实现单元测试和测试驱动开发的示例或教程的财富。
你如何用游戏制作者语言编写单元测试?
答案 0 :(得分:3)
我已经开始专门为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还有很长的路要走。 (我能够用当前的迭代编写扫雷克隆)。我计划继续推进项目的发展,并希望使其更加健壮,更容易使用。
答案 1 :(得分:0)
您可以通过可验证的结果对可以单独调用的任何内容进行单元测试。
我不知道GML,但我可以从维基百科中看到它是一种特殊用途的脚本语言。如果你设法从通常运行的任何地方的外部调用这样的脚本,你设法检查结果,你可以测试它。
然而,
"GML is heavily integrated with the Game Maker environment."
可能意味着您无法单独调用任何脚本或函数。