我想在Jest模拟中使用Firebase Firestore模拟器进行集成测试。我的src/__mocks__/firebase.ts
是:
import mockFirebase from '@firebase/testing'
console.log(mockFirebase)
export const firebase = mockFirebase.initializeAdminApp({
projectId: `autoflocc-${process.pid}`,
})
export const db = firebase.firestore()
它被导入到测试代码中,如下所示:
import mockFirebase from '@firebase/testing'
jest.mock('../src/firebase')
但是,当模拟文件运行时,mockFirebase
是undefined
(根据console.log
)。我尝试导入其他模块和一些工作(import _ from 'lodash'
),但是其他却不这样做(import x from 'firebase-functions'
),还返回了undefined
。
有什么想法为什么有些导入可以在手动模拟中起作用,而另一些则不能?
注意:这是打字稿,可能会影响它。
答案 0 :(得分:0)
此语法:
import mockFirebase from '@firebase/testing';
...正在尝试将@firebase/testing
的{{3}}导入为mockFirebase
...
...但是mockFirebase
由于undefined
default
export而以@firebase/testing
结尾。
将所有内容导入@firebase/testing
的正确语法为:
import * as mockFirebase from '@firebase/testing';