如何在Jasmine中设置名称空间进行测试?

时间:2012-06-04 20:56:20

标签: javascript unit-testing jasmine

我需要为我想要使用Jasmine测试的Javascript类添加功能。类定义如下:

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

如果我删除GAME.Player,我可以编写正常的测试并让它们通过。但是当试图将Game.Player留在CustomPlayerSetup的类定义中时,我得到的参考错误游戏没有定义。如何定义这个测试?

要回答Charles的建议,即使我在我的Jasmine测试文件中声明了GAME和播放器变量,它仍然给了我,如

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

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

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

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

2 个答案:

答案 0 :(得分:0)

在我看来,你需要在运行之前实例化对象GAME.Player /在jasmine测试中包含js文件。类似的东西:

<script type="text/javascript">
    var GAME = {Player:{}};
</script>
</script src="your_src.js"/>

答案 1 :(得分:0)

最有可能在你的规范运行中,你有任何文件在运行规范的文件下面实例化游戏和/或播放器(或者根本没有包含它)。

如果不是这样的话,请尝试发布您的spec-runner以及其中一个失败的测试。