0

我需要向要使用 Jasmine 测试的 Javascript 类添加功能。类定义是这样的:

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

如果我删除GAME.Player,我可以编写正常的测试并让它们通过。但是当尝试离开Game.PlayerCustomPlayerSetup 的类定义时,我得到一个 Reference Error Game is not defined。如何定义这个测试?

为了回答查尔斯的建议,即使我在我的 Jasmine 测试文件中声明 GAME 和 Player vars 在它仍然给我的 require 行之前,如

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

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

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

指向生产代码文件而不是测试文件的相同错误。我正在使用 jasmine-node 运行测试。

4

2 回答 2

0

在我看来,您需要GAME.Player在 jasmine 测试中运行/包含 js 文件之前实例化该对象。就像是:

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

很可能在您的规范运行程序中,您有任何文件实例化 Game 和/或运行规范的文件下方的播放器(或者您根本没有包含它)。

如果不是这种情况,请尝试发布您的规范运行程序以及失败的测试之一。

于 2012-06-04T21:38:19.373 回答