HTML5 canvas and BDD - Cucumber



我最近学习了行为驱动开发(BDD),我发现它对CRUD web应用程序有好处。

Cucumber等BDD工具适合游戏吗?特别是它们适合HTML5 Canvas游戏吗?

HTML5画布游戏还有其他BDD工具吗?或者BDD仅适用于CRUD应用程序?

我最近刚刚开始尝试BDD和游戏开发。但我是在.NET&带有C#的XNA框架。我使用Visual Studio作为IDE,并使用SpecFlow和NUnit进行测试。

SpecFlow是BDD/小黄瓜工具,作为一个小组,我们一直在讨论游戏,充实一些需求,并在小黄瓜中记录它们。。。然后从那里出发。关键是将游戏设计成可测试的。

我们已经将游戏引擎从XNA所需的主要"游戏循环"实现中抽象出来,因此我们能够加载它并注入它所需的所有依赖项。然后,我们在引擎上运行测试,然后对代码进行断言,以确保它的行为正确。

我们很早就决定图形/绘图/声音等不在测试范围内。。。如果它们在最终产品中被破坏,那将是非常明显的。我们设法建立的测试套件让我们相信游戏本身的机制正在按预期工作(即游戏对象A在正确的位置吗?游戏对象B在被炮弹C击中时会死亡吗?等等)

到目前为止,这是一次相当不错的经历。

问题是:你能想出用JavaScript与基于画布的游戏交互的方法吗?

实际上,你能打开JS控制台并从那里与游戏交互吗?你能在正确的坐标上点击吗?你能按键吗?最重要的是,你能断言游戏的输出吗?

如果答案是肯定的,那么你就可以在JavaScript中自动化游戏,Cucumber或Cucumber.js肯定可以在此基础上使用。

如果答案是否定的,并且您无法找到以与上述类似的方式自动化画布内容的方法,那么恐怕没有任何自动化工具可以完成这项工作。

回答您的第二个问题:BDD与"CRUD"应用程序完全无关。这是关于描述行为并自动化说明这些行为的示例。因此,您可以对几乎任何类型的应用程序采取BDD方法。

如果你不想找到一种自动化应用程序的方法,你仍然可以考虑编写场景来记录应用程序的(预期)行为。自动化阶段不是强制性的,这与普遍的看法相反:)

最新更新