gpt4 book ai didi

firebase - 使用 Jest 测试 Firebase 函数 - 错误 : moduleName. split 不是函数

转载 作者:行者123 更新时间:2023-12-02 19:44:54 24 4
gpt4 key购买 nike

我正在尝试使用 firebase-functions-test SDK 测试 Firebase Cloud 函数...文档(通常)基于 mocha/sinon ,但由于我的项目基于 Jest ,我想使用相反,开 Jest ...

在文档中,他们指出,由于 index.js 正在调用 admin.initializeApp ...我需要在导入函数之前对其进行 stub 。

所以他们写道:

const test = require("firebase-functions-test");
const admin = require("firebase-admin");
adminInitStub = sinon.stub(admin, 'initializeApp');
myFunctions = require('../index');

使用 Jest ,我尝试以这种方式模仿它:

const test = require("firebase-functions-test");
const admin = require("firebase-admin");
adminInitStub = jest.mock(admin, 'initializeApp');
myFunctions = require('../index');

但我收到错误:

测试失败/index.spec.js 云功能 ✕遇到声明异常(5ms)

  ● Cloud Functions › encountered a declaration exception

TypeError: moduleName.split is not a function

4 |
5 | describe('Cloud Functions', () => {
> 6 | const adminInitStub = jest.mock(admin, "initializeApp");
| ^
7 | const myFunctions = require('../index.js');
8 |
9 | before(() => {

at Resolver.resolveModuleFromDirIfExists (../node_modules/jest-resolve/build/index.js:187:30)
at Suite.mock (tests/index.spec.js:6:30)

我哪里错了?

最佳答案

我认为问题是误用了jest.mock函数,

此函数将在模块上使用,例如“require”或 import for ex:

jest.mock('fs');

( https://jestjs.io/docs/en/manual-mocks )

您可能会将其与 jest.fngenMockFunction() 混淆

关于firebase - 使用 Jest 测试 Firebase 函数 - 错误 : moduleName. split 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53560346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com