编辑:我将console.log
更改为alert
并找到属性:getInterface
。
我们有一个环境完整性测试,确保我们的代码不会引入不需要的全局变量。在运行代码之前,我们创建window
对象的"副本":
var testingWindow = {};
for (var x in window) {
if (window.hasOwnProperty(x)) {
testingWindow[x] = true;
}
}
然后在运行我们的代码后,我们运行这个测试:
describe('After the program has run', function() {
it('no new global variables have been introduced', function() {
for (var x in window) {
if (window.hasOwnProperty(x)) {
if (!testingWindow[x]) {
console.log(x);
}
expect(testingWindow[x]).not.toBe(undefined);
expect(window.hasOwnProperty(x)).toBe(true);
}
}
});
});
此测试在除 Firefox 之外的所有浏览器中均通过。更奇怪的是,我从未见过console
打开时测试失败,因此任何"看到"错误的尝试都是徒劳的。任何帮助,不胜感激。
提前谢谢。
看起来像是一个Firefox错误:https://github.com/visionmedia/mocha/issues/380。
当我将此条件包裹在我的expect
s 上时,它们总是通过:
if (x !== 'getInterface') ...
看起来Firefox一开始并没有定义getInterface
,然后它后来就定义了。打开console
使其在开始时定义。