[英]Test firebase cloud messaging with Jest
我正在嘗試用玩笑來測試Firebase雲消息傳遞,但是我的模擬功能有錯誤...
如何測試所有函數調用?
expect(jest.fn()).toHaveBeenCalled()
Expected mock function to have been called.
import { Sentry, SentrySeverity } from 'react-native-sentry';
import RNFirebase from 'react-native-firebase';
import Veery from 'react-native-veery';
export default function firebaseCloudMessaging() {
try {
const firebase = RNFirebase.app().messaging();
firebase.getToken().then(Veery.setVeeryToken);
firebase.getInitialNotification();
firebase.onMessage(Veery.VeeryNotificationHandler);
firebase.onTokenRefresh(Veery.setVeeryToken);
} catch (error) {
Sentry.captureException(error, { level: SentrySeverity.Error });
console.warn('Error with firebaseCloudMessaging ', error);
}
}
我的測試: https : //gist.github.com/ludwigCDSBDX/82749eb20eac44fffac8d5318864eb6f
謝謝!
我的錯誤:先前的模擬創建了多個模擬實例,因此當我嘗試檢查是否已調用我的模擬時,我在比較的是同一函數,而不是同一函數實例!
jest.mock('react-native-firebase', () => {
const app = { messaging: () => messaging };
const messaging = {
getToken: jest.fn(() => Promise.resolve('myTokenMock')),
getInitialNotification: jest.fn(),
onMessage: jest.fn(),
onTokenRefresh: jest.fn(() => Promise.resolve('myMockTokenRefresh')),
};
return { app: () => app };
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.