2013-10-15 24 views
3

在MochaJS,我一直在導入我的JS文件時進行測試收到此錯誤:MochaJS「窗口是不確定的」

ReferenceError: window is not defined 

我的js文件與下面的模式,我相信寫的是定義的最佳實踐窗位變量:

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

據: What is the correct way to check if a global variable exists?

無論如何,它似乎是合理的,應該能夠到m在不打破單元測試的情況下,在js文件中的任何位置引用「窗口」。

我不想模擬去一個URL(因爲zombieJS教程似乎假設),也不能讓zombieJS或phantomJS創建一個窗口對象的模擬。

插入

var window = {}; 

進入我的單元測試沒有任何影響。

其他似乎與此相關的帖子,如Defining Window for Testing in Mocha對我來說絕對沒有意義。

人們如何處理這個問題?

回答

2

我想通了!

基本上它涉及將任何根對象作爲「this」傳遞給正在進行單元測試的函數。

我寫了一個更多comprehensive blog post就可以了。