Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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
React native 使用Jest测试同一模块中的两个组件_React Native_Jestjs_React Native Camera - Fatal编程技术网

React native 使用Jest测试同一模块中的两个组件

React native 使用Jest测试同一模块中的两个组件,react-native,jestjs,react-native-camera,React Native,Jestjs,React Native Camera,所以我正在为我的React本机应用程序设置一些Jest测试,但在尝试模拟React本机摄像头时遇到了问题 react native camera目前分为两种实现——RCTCamera和RNCamera——我正在使用这两种实现。RCTCamera适用于Android,RNCamera适用于iOS 因此,当我的测试套件遇到这样的问题时,它遇到了一个大问题: type: ((Platform.OS === 'android') ? Camera.constants.Type.back : RNCame

所以我正在为我的React本机应用程序设置一些Jest测试,但在尝试模拟React本机摄像头时遇到了问题

react native camera目前分为两种实现——RCTCamera和RNCamera——我正在使用这两种实现。RCTCamera适用于Android,RNCamera适用于iOS

因此,当我的测试套件遇到这样的问题时,它遇到了一个大问题:

type: ((Platform.OS === 'android') ? Camera.constants.Type.back : RNCamera.Constants.Type.back),
我已成功模拟摄影机组件及其常量,如下所示:

import React from 'react';

const constants = constants = {
  Aspect: {},
  BarCodeType: {},
  Type: {},
  CaptureMode: {},
  CaptureTarget: {},
  CaptureQuality: {},
  Orientation: {},
  FlashMode: {},
  TorchMode: {}
};

class Camera extends React.Component {

  static constants = constants
  render() {
    return null;
  }
}

Camera.constants = constants;

export default Camera;
然后在测试用例中执行以下操作:

jest.mock('react-native-camera', () => require.requireActual('../../__mocks__/react-native-camera').default);
但这还没有定义

我不太会开玩笑,所以我还在学习。Camera和RNCamera是react native Camera软件包中独立文件中的独立组件。我怎么能嘲笑他们两个呢


谢谢。

您找到解决方案了吗?在我的测试中,我还发现RNCamera未定义。@SarneetKaur我没有,没有。我们决定咬紧牙关,在android和ios上都使用RNCamera,不开玩笑地继续前进。