gpt4 book ai didi

reactjs - 用 Jest 设置 ReactNative 的 NativeModules.RNDeviceInfo

转载 作者:行者123 更新时间:2023-12-03 16:41:49 27 4
gpt4 key购买 nike

我正在尝试将我的 react native 应用程序从使用 Mocha/Chai 切换到 Jest,但我遇到了问题。

以前在我的test/setup.js我有一些类似的东西:

const NativeModules = require('react-native-mock-render').NativeModules;
const MockRNDeviceInfo = require('./support/mock-device-info.js').MockRNDeviceInfo;
NativeModules.RNDeviceInfo = MockRNDeviceInfo;

但是,这不适用于开 Jest ,因为在尝试测试我的组件之一时出现以下错误:

TypeError: Cannot read property 'appVersion' of undefined
at Object.getVersion (node_modules/react-native-device-info/deviceinfo.js:39:20)

NativeModules 上设置值的正确方法是什么? ?

最佳答案

在 Jest 中,您可以使用以下方式模拟模块:

jest.mock('react-native-device-info', () => {
return {
getVersion: () => 4
}
})

我只 mock 了 getVersion方法并返回一个随机数,因为这对您来说是失败的,但您可能必须添加您在应用程序中使用的那些(并将值更改为您想要的值)。

您也可以使用 jest.fn util来模拟模块的功能。

关于reactjs - 用 Jest 设置 ReactNative 的 NativeModules.RNDeviceInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com