React native 找不到模块';事件发射器';从';setupJest.js';使用React Native 0.61.0

React native 找不到模块';事件发射器';从';setupJest.js';使用React Native 0.61.0,react-native,jestjs,React Native,Jestjs,在运行React本机测试之前,我使用了以下setupJest.js文件 // Required to correctly polyfill React-Native import { configure } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; configure({ adapter: new Adapter() }); global.XMLHttpRequest = jest.fn(); global.

在运行React本机测试之前,我使用了以下
setupJest.js
文件

// Required to correctly polyfill React-Native

import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

configure({ adapter: new Adapter() });

global.XMLHttpRequest = jest.fn();
global.fetch = jest.fn();

if (typeof window !== 'object') {
  global.window = global;
  global.window.navigator = {};
}

const EventEmitter = require('EventEmitter');
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');

class NativeEventEmitter extends EventEmitter {
  constructor() {
    super(RCTDeviceEventEmitter.sharedSubscriber);
  }
}
下面是一个示例测试:

/**
 * @format
 */

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';

jest.mock('NativeEventEmitter');

it('renders correctly', () => {
  renderer.create(<App />);
});
如果我更改导入以匹配文件在
node\u模块中的位置
,我就不会有更多的进展

const EventEmitter = require('react-native/Libraries/vendor/emitter/EventEmitter');
const RCTDeviceEventEmitter = require('react-native/Libraries/EventEmitter/RCTDeviceEventEmitter');
你知道如何更新我的代码,使其与React Native 0.61.0兼容吗

Cannot find module 'NativeEventEmitter' from 'App-test.js'

  10 | import renderer from 'react-test-renderer';
  11 | 
> 12 | jest.mock('NativeEventEmitter');
     | ^
  13 | 
  14 | it('renders correctly', () => {
  15 |   renderer.create(<App />);

  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:259:17)
  at Object.<anonymous> (tests/App-test.js:12:1)

RN库为
nativeEventMitter
类提供了模拟实现。只需从setupJest.js中删除以下代码:

const EventEmitter = require('EventEmitter');
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');

class NativeEventEmitter extends EventEmitter {
  constructor() {
    super(RCTDeviceEventEmitter.sharedSubscriber);
  }
}
并在测试文件中设置模拟:

jest.mock(
  '../node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter',
);
不要忘记删除:

jest.mock('NativeEventEmitter');
jest.mock(
  '../node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter',
);
jest.mock('NativeEventEmitter');