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

it('renders correctly', () => {
  const tree = renderer.create(<Scene {...props} />).toJSON();
  expect(tree).toMatchSnapshot();
});

我的组件Scene导入一个setting.json文件.我在本地实例上有该文件,但我不会将其推送到CI实例上.因此,当它试图导入它时,找不到该文件.

有没有办法在我的测试中模拟这个文件?

推荐答案

您可以在jest设置中使用moduleNameMapper将导入指向模拟json文件.

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

或者可以在测试中使用jest.mock直接模拟文件,注意必须添加{ virtual: true }参数.

jest.mock('path/to/setting.json', ()=>({
  settings: 'someSetting'
}), { virtual: true })

React-native相关问答推荐

如何在API调用期间将本地存储(Expressc存储)中的令牌传递到后台

使用react native 杀死应用程序后蓝牙仍处于活动状态

react平面列表渲染项

React Native WebView onMessage 没有做任何事情

Android Studio 为构建设置 node 目录(Cause: error=2, No such file or directory)

找不到变量 atob

TabNavigator 中的 React Navigation 传递props

如何使用 React Navigation 使 TabNavigator 按钮推送模态屏幕

如何在 react-native 中在子级和父级之间传递数据?

如何判断 goBack() 函数在react-navigation 中是否可行?

如何从 React Native-App 中的 res/drawable-folder 加载图像?

null 不是对象(判断 this.state.count)

在 Android React Native 应用程序中正确使用 Intl

如何在react-native矢量图标中从多个文件导入图标?

当前文件夹中的 react-native init

在 `../node_modules/react-native/React` 中找不到 `React-Core` 的 podspec

React Native:使用选项卡动画收缩标题

是否可以将 Material UI 库与 React Native 一起使用?

无法解析模块react-native-screen

/bin/sh: adb: 找不到命令