1

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

像 Cucumber 这样的 BDD 工具是否适合游戏,特别是它们是否适合 HTML5 Canvas 游戏?

是否还有其他适用于 HTML5 画布游戏的 BDD 工具?还是 BDD 仅适用于 CRUD 应用程序?

4

2 回答 2

2

我最近一直在尝试 BDD 和游戏开发。但我正在使用 C# 构建 .NET 和 XNA 框架。我使用 Visual Studio 作为我的 IDE,并使用 SpecFlow 和 NUnit 进行测试。

SpecFlow 是 BDD/Gherkin 工具——作为一个团队,我们一直在讨论游戏并充实一些需求并在 Gherkin 中记录它们......然后从那里开始。关键是将游戏设计为可测试的。

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

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

到目前为止,这是一次非常好的体验。

于 2012-09-06T11:26:05.253 回答
1

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

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

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

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

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

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

于 2012-09-06T07:29:35.050 回答