【发布时间】:2019-12-02 18:40:40
【问题描述】:
我正在尝试从 @react-native-firebase/messaging 模拟 Firebase 云消息传递 (FCM)。到目前为止,这是我的模拟:
jest.mock('@react-native-firebase/messaging', () => ({
hasPermission: jest.fn(() => Promise.resolve(true)),
subscribeToTopic: jest.fn(),
deleteToken: jest.fn(),
unsubscribeFromTopic: jest.fn(),
registerForRemoteNotifications: jest.fn(),
requestPermission: jest.fn(() => Promise.resolve(true)),
getToken: jest.fn(() => Promise.resolve('myMockToken')),
getAPNSToken: jest.fn(() => Promise.resolve('myMockToken')),
onTokenRefresh: jest.fn(() => Promise.resolve('myMockToken')),
onMessage: jest.fn(),
isRegisteredForRemoteNotifications: jest.mock(false),
isAutoInitEnabled: jest.mock(false),
}));
但是当我运行测试时,我得到:
Invariant Violation: Native module cannot be null.
at invariant (packages/mobile/node_modules/invariant/invariant.js:40:15)
at RNFBNativeEventEmitter.invariant (packages/mobile/node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js:36:7)
at new RNFBNativeEventEmitter (node_modules/@react-native-firebase/messaging/node_modules/@react-native-firebase/app/lib/internal/RNFBNativeEventEmitter.js:24:5)
at Object.<anonymous> (node_modules/@react-native-firebase/messaging/node_modules/@react-native-firebase/app/lib/internal/RNFBNativeEventEmitter.js:48:16)
at Object.<anonymous> (node_modules/@react-native-firebase/messaging/node_modules/@react-native-firebase/app/lib/internal/registry/nativeModule.js:21:1)
这告诉我我仍然需要模拟一些其他功能。我在这里缺少什么?
【问题讨论】:
-
提供你要测试的代码
标签: unit-testing react-native jestjs