编辑:我将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
打开而失败,所以任何“看到”错误的尝试都是徒劳的。任何帮助表示赞赏。
提前致谢。
答案 0 :(得分:2)
这似乎是一个Firefox错误:https://github.com/visionmedia/mocha/issues/380。
当我在expect
s周围包装此条件时,它们总是通过:
if (x !== 'getInterface') ...
看起来Firefox最初没有定义getInterface
,之后就会这样做。 console
打开后会在开头定义。