如何解决如何正确模拟react-native-firebase v6
我在react-native-firebase仓库中打开了一个问题,但是也许有人可以在这里回答我的问题。
嘿,我正在将代码库中的firebase v5更新为firebase v6,完成了主要集成,现在我想让我们的测试套件通过,我设法通过以下方式模拟了firebases模块:>
jest.mock('@react-native-firebase/messaging',() => {
return () => ({
hasPermission: jest.fn(() => Promise.resolve(true)),subscribeToTopic: jest.fn(),unsubscribeFromTopic: jest.fn(),requestPermission: jest.fn(() => Promise.resolve(true)),getToken: jest.fn(() => Promise.resolve('myMockToken')),onMessage: jest.fn(),onNotificationOpenedApp: jest.fn(),getInitialNotification: jest.fn(() => Promise.resolve(false))
})
})
jest.mock('@react-native-firebase/crashlytics',() => ({}))
jest.mock('@react-native-firebase/app',() => {
return () => ({
onNotification: jest.fn(),onNotificationDisplayed: jest.fn()
})
})
jest.mock('react-native/Libraries/EventEmitter/NativeEventEmitter')
// jest.mock('@react-native-firebase/app/lib/internal/RNFBNativeEventEmitter')
您可以看到我不得不模拟RN NativeEventEmitter,无论如何,我不确定这是否是使我们几乎所有测试套件都变成绿色的最佳选择,但是有一个测试失败了:
$ jest --forceExit src/Sagas/InAppServicesSaga.test.js
FAIL src/Sagas/InAppServicesSaga.test.js
● Test suite failed to run
TypeError: Super expression must either be null or a function
at _inherits (node_modules/@babel/runtime/helpers/inherits.js:5:11)
at node_modules/@react-native-firebase/app/lib/internal/RNFBNativeEventEmitter.js:29:26
at Object.<anonymous> (node_modules/@react-native-firebase/app/lib/internal/RNFBNativeEventEmitter.js:71:2)
at Object.<anonymous> (node_modules/@react-native-firebase/app/lib/internal/registry/nativeModule.js:21:1)
我也尝试过模拟RNFBNativeEventEmitter对象,但这似乎不起作用,是否有建议的方法可以模拟该软件包?还是我做错了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。