Javascript 开玩笑模仿罐头';我不回闭包

Javascript 开玩笑模仿罐头';我不回闭包,javascript,node.js,unit-testing,jestjs,Javascript,Node.js,Unit Testing,Jestjs,我正在写一个简单的应用程序。我使用Jest模拟本地模块以返回假数据 例如,如果我在行中返回假数据,一切正常 jest.mock('./data/data', () => { return { <SAMPLE_DATA> }; }); jest.mock('./data/data',()=>{ 返回{ }; }); 但是,如果我将样本数据提取到一个变量中,以便以后可以像这样使用.toBe匹配器 const mockData = { <SAMPLE_D

我正在写一个简单的应用程序。我使用Jest模拟本地模块以返回假数据

例如,如果我在行中返回假数据,一切正常

jest.mock('./data/data', () => {
  return {
    <SAMPLE_DATA>
  };
});
jest.mock('./data/data',()=>{
返回{
};
});
但是,如果我将样本数据提取到一个变量中,以便以后可以像这样使用.toBe匹配器

const mockData = {
  <SAMPLE_DATA>
};

jest.mock('./data/data', () => mockData);
const mockData={
};
jest.mock('./data/data',()=>mockData);
我得到以下错误

ReferenceError:未定义mockData

mockData和对jest.mock的调用都位于import语句之后的文件顶部,而不是每个块之前的任何descripe、it内部

我认为mockData仍然在范围内,因为它是一个闭包。我做错了什么?或者我对闭包如何与Jest和JavaScript一起工作缺少一些知识


我正在使用节点10.19.0和@testing library/jest dom version 4.2.4

jest.mock调用被提升到模块的顶部(参见示例),因此没有什么需要关闭的。由于mock被提升到导入之上,因此无法将数据传递到mock中。不是我想听的而是谢谢你的帮助。如果您将您的评论作为答案,我将接受它。模拟调用被提升到模块的顶部(参见示例),因此没有什么可结束的。鉴于模拟被提升到导入上方,因此无法将数据传递到模拟中。不是我想听的而是谢谢你的帮助。如果你把你的评论作为答案,我会接受的