1

編集: 私はに変更console.logalert、プロパティを見つけました: 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オープンでテストが失敗するのを見たことがないので、エラーを「確認」しようとしても無駄でした。どんな助けでも大歓迎です。

前もって感謝します。

4

1 に答える 1

2

これは Firefox のバグのようです: https://github.com/visionmedia/mocha/issues/380

この条件をexpects の周りにラップすると、常に次のように渡されます。

if (x !== 'getInterface') ...

Firefox は最初は定義していないように見えますgetInterfaceが、後で定義します。開いconsoleていると、最初に定義されます。

于 2013-10-31T14:54:55.190 に答える