MochaJS'窗口未定义'

时间:2013-10-15 19:18:11

标签: javascript unit-testing window mocha

在MochaJS中,我在导入我的JS文件进行测试时一直收到此错误:

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?

无论如何,一个人应该能够在js文件中的任何一点引用'window'而不破坏单元测试似乎是合理的。

我不想模拟转到URL(如zombieJS教程似乎假设的那样),也不能让zombieJS或phantomJS创建窗口对象的模拟。

插入

var window = {};

进入我的单元测试没有效果。

其他似乎与此相关的帖子,例如Defining Window for Testing in Mocha对我来说毫无意义。

人们如何处理这个问题?

1 个答案:

答案 0 :(得分:2)

我明白了!

基本上它涉及将根对象作为“this”传递给正在进行单元测试的函数。

我在上面写了更多comprehensive blog post