不变违规:“new NativeEventEmitter()”需要非空参数

Kam*_*sak 12 testing automated-tests jestjs react-native

我尝试使用 jest 在react-native中运行默认测试,发现了这个问题:

Test suite failed to run

Invariant Violation: `new NativeEventEmitter()` requires a non-null argument.

  at invariant (node_modules/invariant/invariant.js:40:15)
  at new NativeEventEmitter (node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js:44:7)
  at Object.<anonymous> (node_modules/@react-native-clipboard/clipboard/dist/NativeClipboard.js:15:20)
  at Object.<anonymous> (node_modules/@react-native-clipboard/clipboard/dist/Clipboard.js:24:38)
Run Code Online (Sandbox Code Playgroud)

我完全不知道如何解决这个问题。

我尝试添加以下行:

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

到 jest.setup.js

或者

模拟/native_event_emiter.js

但这两种解决方案都不起作用。

有人知道如何解决这个问题吗?

小智 25

你添加setupFiles了你的jest.config.js吗?

这对我有用:

//jest.config.js

setupFiles: ['<rootDir>/jest.setup.js'],
Run Code Online (Sandbox Code Playgroud)
//jest.setup.js

jest.mock('react-native/Libraries/EventEmitter/NativeEventEmitter');
Run Code Online (Sandbox Code Playgroud)