3

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

ReferenceError: window is not defined

我的 js 文件是用以下模式编写的,我认为这是定义窗口级别变量的最佳实践:

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

根据: 检查全局变量是否存在的正确方法是什么?

无论如何,在不破坏单元测试的情况下,应该能够在 js 文件中的任何位置引用“窗口”似乎是合理的。

我不想模拟去一个 URL(就像zombieJS 教程似乎假设的那样),我也不能让zombieJS 或 phantomJS 来创建窗口对象的模拟。

插入

var window = {};

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

其他似乎处理这个问题的帖子,例如在 Mocha 中定义测试窗口对我来说完全没有意义。

人们如何处理这个问题?

4

1 回答 1

2

我想到了!

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

我写了一篇更全面的博客文章

于 2013-10-16T18:41:16.010 回答