2

我正在使用一个 javascript 文件,该文件 a) 使用函数声明一个对象,并且 b) 使用它期望在外部声明的哈希调用该对象的 init 函数。我的 Jasmine 规范抱怨它找不到哈希,因为它不存在!

var Foo = {
  init: function(param) { ... }
};

Foo.init(externalVariable);

我最初的感觉是它的结构很糟糕,而不仅仅是声明变量,外部声明也应该调用函数,但现在让我们忽略它。

有没有办法让我在加载源文件之前向 Jasmine 声明这个变量?

谢谢

4

1 回答 1

3

如果它确实是全局对象,则将值分配给全局对象。只是不要忘记在测试结束时将其删除,以保持环境清洁以进行其他测试。

beforeEach(function() {
  window.externalVariable = "this kinda sucks";
});

afterEach(function() {
  delete window.externalVariable;
});
于 2013-01-19T01:50:33.477 回答