Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
Javascript 带Jest的模拟模块变量_Javascript_Node.js_Jestjs - Fatal编程技术网

Javascript 带Jest的模拟模块变量

Javascript 带Jest的模拟模块变量,javascript,node.js,jestjs,Javascript,Node.js,Jestjs,我一直在使用Jest模拟一些变量,这些变量在测试函数中使用,如下所示: global.SERVER_URL = 'test'; await hydrateApp(); expect(ReactDOM.hydrate).toBeCalled(); 这里,新设置的SERVER\u URL值由hydreapp()使用。但是,我无法使用模块执行此操作。当我尝试设置module.hot时,调用函数时,它仍将是未定义的: global.module.hot = { accept: jest.fn()

我一直在使用Jest模拟一些变量,这些变量在测试函数中使用,如下所示:

global.SERVER_URL = 'test';
await hydrateApp();
expect(ReactDOM.hydrate).toBeCalled();
这里,新设置的
SERVER\u URL
值由
hydreapp()
使用。但是,我无法使用
模块
执行此操作。当我尝试设置
module.hot
时,调用函数时,它仍将是未定义的:

global.module.hot = {
  accept: jest.fn()
};
await hydrateApp();
expect(global.module.hot.accept).toBeCalled();
在这种情况下,
module.hot
hydreapp()中未定义


如何在模块对象上设置被测试函数使用的变量?

您是否可以显示
eapp
的代码,或者至少如何使用
module.hot
?设置
global.module.hot
时是否抛出任何错误?另一个要考虑的事情——检查您使用的环境,有可能使用浏览器类环境(而不是<代码>全局< /代码>,您有<代码> Windows >代码>。<代码> Global。模块。热< /COD>变量被正确设置并存在于<代码> HyDATAppApple()/<代码>中,但我需要<代码>模块。因为webpack将其用于热模块更换。对于每个其他变量,我可以设置
global.var
,然后还将设置
var
。这里我不能这样做。
global
肯定存在,因为我将其用于其他变量,并且在设置
global.module.hot
时,它不会显示任何错误。您的setter很可能会无声地失败,因为
module
未定义,并且您尝试在未定义的
module
上设置
hot
属性。您是否尝试过类似这样的操作:
global.module={hot:{accept:jest.fn()}?注意objectNope的另一个级别,
模块。热
仍未定义:(