如何模拟反应本机 I18nManager
How to mock react native I18nManager
我正在尝试 运行 在 React Native 中开玩笑。我正在使用 react-native-router-flux 进行导航。我的测试用例因此错误而失败
Test suite failed to run
TypeError: Cannot read property 'isRTL' of undefined
at Object.<anonymous> (node_modules/react-native-router-flux/dist/NavBar.js:286:44)
at Object.<anonymous> (node_modules/react-native-router-flux/dist/navigationStore.js:7:13)
at Object.<anonymous> (node_modules/react-native-router-flux/dist/Reducer.js:74:36)
确切的行是 transform:[{scaleX:_reactNative.I18nManager.isRTL?-1:1}]})
我尝试了不同的方法来模拟但无法得到它
一种方法是
import {I18nManager} from 'react-native'
I18nManager = {
isRTL : false
}
我把这个片段放在开玩笑的初始配置文件中,但我得到了像 I18nManager is readonly
这样的错误
实际上,我使用的是 运行 的显式模块工厂,而不是使用 react-native-mock-render 的 Jest 自动模拟功能。
像这样
jest.mock('react-native', () => require('react-native-mock-render'), {
virtual: true
})
当我检查这个 lib 代码时,我在模拟中找不到 I18nManager。所以我分叉了那个 repo 并自己添加了 I18nManager 文件。
我正在尝试 运行 在 React Native 中开玩笑。我正在使用 react-native-router-flux 进行导航。我的测试用例因此错误而失败
Test suite failed to run
TypeError: Cannot read property 'isRTL' of undefined
at Object.<anonymous> (node_modules/react-native-router-flux/dist/NavBar.js:286:44)
at Object.<anonymous> (node_modules/react-native-router-flux/dist/navigationStore.js:7:13)
at Object.<anonymous> (node_modules/react-native-router-flux/dist/Reducer.js:74:36)
确切的行是 transform:[{scaleX:_reactNative.I18nManager.isRTL?-1:1}]})
我尝试了不同的方法来模拟但无法得到它
一种方法是
import {I18nManager} from 'react-native'
I18nManager = {
isRTL : false
}
我把这个片段放在开玩笑的初始配置文件中,但我得到了像 I18nManager is readonly
实际上,我使用的是 运行 的显式模块工厂,而不是使用 react-native-mock-render 的 Jest 自动模拟功能。
像这样
jest.mock('react-native', () => require('react-native-mock-render'), {
virtual: true
})
当我检查这个 lib 代码时,我在模拟中找不到 I18nManager。所以我分叉了那个 repo 并自己添加了 I18nManager 文件。