所以我正在为我的React Native应用程序设置一些Jest测试,但在尝试模拟react-native-camera时我遇到了问题。
react-native-camera目前分为两个实现 - RCTCamera和RNCamera - 我正在使用它们。适用于Android的RCTCamera和适用于iOS的RNCamera。
所以我的测试套件在遇到这样的线路时遇到了很大的绊脚石:
type: ((Platform.OS === 'android') ? Camera.constants.Type.back : RNCamera.Constants.Type.back),
我已经成功地模拟了Camera组件及其常量,如下所示:
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);
但这使得RNCamera未定义。
我是Jest的新手,所以我还在学习。 Camera和RNCamera是react-native-camera软件包中单独文件中的独立组件。我怎么能嘲笑他们两个?
谢谢。