小编Bre*_*ill的帖子

您如何使用Jest模拟Firebase Firestore方法?

我有一系列功能,每个功能执行各种Firestore交互。如何使用Jest模拟这些Firestore调用?我想避免使用图书馆。

当我使用jest.mock("firebase/app")jest.mock("firebase/firestore")其他版本时,我将得到null的TypeErrors或表明我仍在引用实际导入而不是模拟的错误:Error: ... make sure you call initializeApp()

例如,我要测试的一个简单函数:

import firebase from "firebase/app";
import "firebase/firestore";

export const setDocData = (id, data) => {
  const newDoc = {
    created: firebase.firestore.FieldValue.serverTimestamp(),
    ...data
  };
  firebase
    .firestore()
    .doc("docs/" + id)
    .set(newDoc);
};
Run Code Online (Sandbox Code Playgroud)

请注意,如何照常导入firebase,然后导入firestore的副作用。还要注意,如何首先将Firestore调用为函数,然后再引用为属性。我相信这是我麻烦的根源。

javascript firebase jestjs google-cloud-firestore

4
推荐指数
5
解决办法
5082
查看次数