5

我对 GML 和 TDD 非常熟悉。我想练习测试驱动开发和对 Game Maker Language,GML 的单元测试。由于 GML 是事件驱动的,有可能吗?我没有幸找到很多关于如何在 GML 中实现单元测试和测试驱动开发的示例或教程。

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

4

2 回答 2

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,还有很长的路要走。(我能够用当前迭代编写扫雷克隆)。我计划继续发展该项目,并希望使其更强大且更易于使用。

于 2014-09-11T22:55:23.180 回答
0

您可以对任何可以单独调用的东西进行单元测试,并得到可验证的结果。

我不知道 GML,但我可以从 wikipedia 中看到它是一种特殊用途的脚本语言。如果您设法从通常运行的任何地方的外部调用这样的脚本,并且您设法检查可以测试它的结果。

然而,

"GML is heavily integrated with the Game Maker environment."

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

于 2013-10-29T07:31:46.583 回答