为什么这个茉莉花测试在 Firefox 中偶尔会失败



编辑:我将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使其在开始时定义。

相关内容

  • 没有找到相关文章

最新更新