Как решить NativeModule.RNLocalize является нулевой ошибкой в ​​тесте? - PullRequest
0 голосов
/ 05 апреля 2020

Я использую пакет react-native-localize для обеспечения локализации в приложении. Я уже связал библиотеку, и она отлично работает на устройстве.

Проблема:

Когда я тестирую компонент, который импортирует реагировать-нативно- локализуются . Я получаю ошибку react-native-localize: NativeModule.RNLocalize is null. Чтобы устранить эту нулевую ошибку, я вызываю jest.mock('react-native-localize'); в верхней части тестового файла. Но я все еще получаю ошибку, указывающую на NativeModule.RNLocalize is null. Я также предоставил макет, как указано в пакете README , но безрезультатно.

import 'react-native';
import React from 'react';
import App from '../App';
// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';
import * as RNLocalize from 'react-native-localize';

 // mocking the module here with jest.mock
jest.mock('react-native-localize');

it('renders correctly', () => {
  renderer.create(<App />);
});

Вопрос:

Как вы можете решить a NativeModule.RNLocalize - это нулевая ошибка в тесте?

Трассировка стека:

    FAIL  __tests__/App-test.js
  ● Test suite failed to run

    react-native-localize: NativeModule.RNLocalize is null. To fix this issue try these steps:
    • Run `react-native link react-native-localize` in the project root.
    • Rebuild and re-run the app.
    • If you are using CocoaPods on iOS, run `pod install` in the `ios` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.
    • Check that the library was linked correctly when you used the link command by running through the manual installation instructions in the README.
    * If you are getting this error while unit testing you need to mock the native module. Follow the guide in the README.
    If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-localize 

      16 | 
      17 | import {NavigationContainer} from '@react-navigation/native';
    > 18 | import * as RNLocalize from 'react-native-localize';
         | ^
      19 | import {Icon} from 'native-base';
      20 | import {createStackNavigator} from '@react-navigation/stack';
      21 | const Stack = createStackNavigator();

      at Object.<anonymous> (node_modules/react-native-localize/lib/commonjs/module.js:17:9)
      at Object.<anonymous> (node_modules/react-native-localize/lib/commonjs/index.js:3:1)
      at Object.<anonymous> (src/modules/AppView.js:18:1)
      at Object.<anonymous> (src/modules/AppViewContainer.js:2:1)
      at Object.<anonymous> (App.js:23:1)
      at Object.<anonymous> (__tests__/App-test.js:7:1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...