0

Jasmine を使用してテストしたい Javascript クラスに機能を追加する必要があります。クラス定義は次のようになります。

GAME.Player.CustomPlayerSetup = function() {
  ...
};

削除するGAME.Playerと、通常のテストを記述して合格させることができます。しかし、Game.PlayerCustomPlayerSetup のクラス定義に残そうとすると、参照エラー Game is not defined が発生します。このテストをどのように定義しますか?

Charles の提案に答えるために、Jasmine テスト ファイルで GAME および Player 変数を require 行の前に宣言しても、次のように表示されます。

GAME = {};
GAME.Player = {};

CustomPlayerSetup = require("../CustomPlayerSetup").CustomPlayerSetup;

describe("Custom Player Setup", function() {
  ...
});

テストファイルではなく、製品コードファイルを指す同じエラー。jasmine-node を使用してテストを実行しています。

4

2 に答える 2

0

GAME.Playerジャスミンテストでjsファイルを実行/インクルードする前に、オブジェクトをインスタンス化する必要があります。何かのようなもの:

<script type="text/javascript">
    var GAME = {Player:{}};
</script>
</script src="your_src.js"/>
于 2012-06-04T21:31:26.873 に答える
0

ほとんどの場合、spec-runner には、spec を実行しているファイルの下に Game や player をインスタンス化するファイルが含まれています (または、まったく含めていません)。

そうでない場合は、spec-runner と失敗したテストの 1 つを投稿してみてください。

于 2012-06-04T21:38:19.373 に答える