3

MochaJS で、テスト用に JS ファイルをインポートすると、次のエラーが表示され続けます。

ReferenceError: window is not defined

私の js ファイルは次のパターンで書かれています。これは、ウィンドウ レベルの変数を定義するためのベスト プラクティスだと思います。

if (typeof window.myVar === 'undefined') {
  window.myVar = ...
}

によると: グローバル変数が存在するかどうかを確認する正しい方法は何ですか?

いずれにせよ、単体テストを中断することなく、js ファイル内の任意の場所で「window」を参照できるようにすることは合理的であるように思われます。

URL へのアクセスをシミュレートしたくありません (zombieJS チュートリアルが想定しているように)。また、zombieJS または phantomJS でウィンドウ オブジェクトのモックを作成することもできません。

挿入

var window = {};

私の単体テストには効果がありません。

Defining Window for Testing in Mochaなど、これに対処しているように見える他の投稿は、私にはまったく意味がありません。

人々はこれにどのように対処しますか?

4

1 に答える 1

2

私はそれを考え出した!

基本的に、ルートオブジェクトが何であれ、ユニットテストされている関数に「this」として渡す必要があります。

私はそれについてより包括的なブログ投稿を書きました。

于 2013-10-16T18:41:16.010 に答える