【发布时间】:2020-12-26 16:03:50
【问题描述】:
我尝试在 react-native 中模拟模块 NativeModules。
为避免在每次测试中复制和粘贴,我尝试创建一个“mocks/react-native.js”文件,在其中模拟相关模块。我发现这个教程有帮助,但它不起作用https://altany.github.io/react-native/0.61/jest/mocking/upgrade/2020/01/25/mocking-react-native-0.61-modules-with-jest.html
这是我的模拟文件
import * as ReactNative from 'react-native';
export const NativeModules = {
...ReactNative.NativeModules,
SettingsManager: {
settings: {
AppleLocale: 'en_US',
},
},
};
export const Platform = {
...ReactNative.Platform,
OS: 'ios',
Version: 123,
isTesting: true,
select: (objs) => objs.ios,
};
export const keyboardDismiss = jest.fn();
export const Keyboard = {
dismiss: keyboardDismiss,
};
export default Object.setPrototypeOf(
{
NativeModules,
Platform,
Keyboard,
},
ReactNative,
);
这是产生的错误:
TypeError: Cannot read property 'create' of undefined
1 | import {StyleSheet} from 'react-native';
2 |
> 3 | export default StyleSheet.create({
TypeError: Cannot read property 'get' of undefined
您知道使用模拟文件模拟NativeModules 模块的另一种方法吗?
要么
你知道如何解决这些错误吗?
【问题讨论】:
标签: javascript reactjs react-native mocking jestjs