TDD和单元测试,GML Game Maker语言

时间:2013-10-17 22:04:12

标签: unit-testing tdd gml

我是GML和TDD的超级n00bs。我想对Game Maker Language,GML进行测试驱动开发和单元测试。是否可能因为GML是事件驱动的?我没有找到很多关于如何在GML中实现单元测试和测试驱动开发的示例或教程的财富。

你如何用游戏制作者语言编写单元测试?

2 个答案:

答案 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."

可能意味着您无法单独调用任何脚本或函数。