6 firebase jestjs google-cloud-functions
我正在尝试使用 firebase-functions-test SDK 测试 Firebase Cloud 函数...文档(通常)基于 mocha/sinon,但由于我的项目基于 Jest,我想改用 Jest。 ..
在文档中,他们声明 index.js 正在调用 admin.initializeApp ......我需要在导入我的函数之前存根它。
所以他们写道:
const test = require("firebase-functions-test");
const admin = require("firebase-admin");
adminInitStub = sinon.stub(admin, 'initializeApp');
myFunctions = require('../index');
Run Code Online (Sandbox Code Playgroud)
使用 Jest ,我尝试以这种方式模仿它:
const test = require("firebase-functions-test");
const admin = require("firebase-admin");
adminInitStub = jest.mock(admin, 'initializeApp');
myFunctions = require('../index');
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
失败测试/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)
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
小智 6
我认为的问题是误用了jest.mock功能,
此函数将用于模块,例如 'require' 或 import for ex:
jest.mock('fs');
Run Code Online (Sandbox Code Playgroud)
( https://jestjs.io/docs/en/manual-mocks )
你可能会将它与jest.fn或genMockFunction()混淆
虽然我无法准确指出您做错了什么,但我可以向您指出firebase-functions-test的单元测试功能文档。您可以运行那里的示例,或者免费预览我在 AngularFirebase 上找到的如何使用 Jest 测试 Firebase 云功能课程。我没有尝试过这个,因为我不在那个环境中开发,但我希望它有帮助。
| 归档时间: |
|
| 查看次数: |
6709 次 |
| 最近记录: |