1

最近、ビヘイビア駆動開発 (BDD) について学んでいましたが、CRUD Web アプリケーションに適していることがわかりました。

Cucumber などの BDD ツールはゲームに適していますか? 具体的には、HTML5 Canvas ゲームに適していますか?

HTML5 キャンバス ゲーム用の BDD ツールは他にありますか? それとも、BDD は CRUD アプリケーション専用ですか?

4

2 に答える 2

2

私は最近、BDD とゲーム開発を試しています。しかし、私は C# を使用して .NET & XNA Frameworks を構築しています。IDE として Visual Studio を使用し、SpecFlow と NUnit でテストしています。

SpecFlow は BDD/Gherkin ツールです。グループとしてゲームについて話し合い、いくつかの要件を具体化して Gherkin で文書化し、そこから進んでいます。重要なのは、ゲームをテスト可能に設計することです。

XNA が必要とするメインの「ゲーム ループ」実装からゲーム エンジンを抽象化したので、ゲーム エンジンをロードして、必要なすべての依存関係を注入することができます。次に、エンジンでテストを実行し、その後コードでアサートを行って、正しく動作していることを確認します。

グラフィック/描画/サウンド/その他はテストの範囲外であると早い段階で判断しました...最終製品でそれらが壊れている場合、それは非常に明白です. 私たちがなんとか構築したテスト スイートは、ゲーム自体のメカニズムが意図したとおりに機能しているという確信を与えてくれます (つまり、ゲーム オブジェクト A は正しい場所にあるのか? ゲーム オブジェクト B は発射物 C に当たったときに死ぬのか? など)。等。)。

これまでのところ、それは非常に良い経験でした。

于 2012-09-06T11:26:05.253 に答える
1

問題は、キャンバス ベースのゲームを JavaScript で操作する方法を思いつくことができるかということです。

実際に、JS コンソールを開いて、そこからゲームを操作していただけますか? 正しい座標でクリックを発射できますか? キーを押すことができますか? 最も重要なこととして、ゲームによって出力されているものについてアサーションを作成できますか?

答えが「はい」の場合、JavaScript でゲームを自動化でき、その上で Cucumber または Cucumber.js を確実に使用できます。

答えが「いいえ」で、上記と同様の方法でキャンバス コンテンツを自動化する方法がわからない場合は、自動化ツールでその仕事を行うことができないのではないかと思います。

2 番目の質問に答えるには: BDD は "CRUD" アプリケーションとはまったく関係ありません。動作を説明し、それらの動作を説明する例を自動化することについてです。したがって、ほぼすべてのタイプのアプリケーションで BDD アプローチを採用できます。

アプリケーションを自動化する方法が見つからない場合でも、シナリオを作成して、アプリの (予想される) 動作を文書化することを検討できます。一般的な信念に反して、自動化フェーズは必須ではありません:)

于 2012-09-06T07:29:35.050 に答える