Skip to main content
 首页 » 编程设计

unit-testing之Jest : Mock import of JSON file

2024年11月24日13sky-heaven

我目前正在测试我的 React 组件之一,如下所示:

it('renders correctly', () => { 
  const tree = renderer.create(<Scene {...props} />).toJSON(); 
  expect(tree).toMatchSnapshot(); 
}); 
我的组件 Scene进口一个 setting.json文件。我在本地实例上有那个文件,但我没有将它推送到我的 CI 实例上。因此,当它尝试导入它时,找不到该文件。
有没有办法在我的测试中模拟这个文件?

请您参考如下方法:

您可以使用 moduleNameMapper 在你的笑话设置中将导入指向一个模拟的 json 文件。

{ 
  "moduleNameMapper": { 
    "setting.json": "<rootDir>/__mocks__/setting.json" 
  } 
} 

或者您可以使用 jest.mock 在你的测试中直接模拟文件,注意你必须添加 { virtual: true }范围。
jest.mock('path/to/setting.json', ()=>({ 
  settings: 'someSetting' 
}), { virtual: true })