Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将上下文传递给一个;要求;d javascript模块_Javascript_Node.js_Mocha.js - Fatal编程技术网

将上下文传递给一个;要求;d javascript模块

将上下文传递给一个;要求;d javascript模块,javascript,node.js,mocha.js,Javascript,Node.js,Mocha.js,我只是在玩一些测试,我一直在按照这个例子编写一个模块: 我正在使用我在某处看到的一个变化来检查“窗口”并使用它,否则使用“这个”。我简化了下面的一个示例: (function() { 'use strict'; var root = this; var previous_myModule = root.myModule; var myModule = function() { }; myModule.noConflict = function

我只是在玩一些测试,我一直在按照这个例子编写一个模块:

我正在使用我在某处看到的一个变化来检查“窗口”并使用它,否则使用“这个”。我简化了下面的一个示例:

(function() {
     'use strict';
     var root = this;
     var previous_myModule = root.myModule;

     var myModule = function() { };

     myModule.noConflict = function() {
         root.myModule = previous_myModule;
         return myModule;
     };

     if (typeof exports !== 'undefined') {
         if (typeof module !== 'undefined' && module.exports) {
             exports = module.exports = myModule;
         }
         exports.myModule = myModule;
     } else {
         root.myModule = myModule;
     }
}).call(typeof window !== 'undefined' ? window : this);
我从中复制的示例尝试模拟jquery的noConflict,以便在需要时从名称空间中删除模块

我正在使用Mocha进行测试,并使用伊斯坦布尔进行代码覆盖。我注意到“noConflict”函数没有行覆盖,所以我想我应该看看是否可以测试它,但似乎我无法传递任何可能是“窗口”值的值。它总是未定义,而是使用“this”

我曾尝试在测试模块中设置“var window…”和“global.window”,但这不起作用

是否有任何方法可以将上下文传递到此模块中,以便测试noConflict函数是否实际还原它在“窗口”上设置的值

编辑: 由于function.prototype.call,窗口的值(如果设置)将作为“this”值传递到函数中。我的问题是,除了未分配外,我不能使窗口做任何事情,我希望在测试环境中模拟浏览器的行为

console.log(window); // window is undefined here, unless inside a browser
(function() {....

事实上,我已经成功地使用global实现了这一点,但我不确定如何实现,而且之前它肯定不起作用。如果我锻炼得更多,我会调查并跟进。