Kyl*_*cot 6 reactjs jestjs react-native
我正在尝试将我的 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;
Run Code Online (Sandbox Code Playgroud)
但是,这不适用于 jest,因为在尝试测试我的组件之一时出现以下错误:
TypeError: Cannot read property 'appVersion' of undefined
at Object.getVersion (node_modules/react-native-device-info/deviceinfo.js:39:20)
Run Code Online (Sandbox Code Playgroud)
设置值的正确方法是什么NativeModules
?
Has*_*Eqx 19
这些天,react-native-device-info
提供了一个测试助手。
所以,可以使用
import mockRNDeviceInfo from 'react-native-device-info/jest/react-native-device-info-mock'; // or use require
jest.mock('react-native-device-info', () => mockRNDeviceInfo);
Run Code Online (Sandbox Code Playgroud)
在 Jest 中,您可以使用以下内容模拟模块:
jest.mock('react-native-device-info', () => {
return {
getVersion: () => 4
}
})
Run Code Online (Sandbox Code Playgroud)
我只是模拟了该getVersion
方法并返回了一个随机数,因为那是您失败的那个,但是您可能必须添加您在应用程序中使用的那些(并将值更改为您想要的值)。
您还可以使用jest.fn 工具来模拟模块的功能。
归档时间: |
|
查看次数: |
3358 次 |
最近记录: |