gpt4 book ai didi

javascript - 如何使用 Firebase 模拟器从单元测试中调用 firebase 函数?

转载 作者:行者123 更新时间:2023-12-05 00:26:47 25 4
gpt4 key购买 nike

我正在运行 firebase 模拟器。
如果允许用户(取决于数据库中的值),我的应用程序可以调用可以创建自定义用户声明的 firebase 云函数
我正在尝试调用该函数:


import * as firebase from '@firebase/testing';
import * as fs from 'fs';

const app = firebase.initializeTestApp({
databaseName: 'mydb',
auth: {
uid: 'useruid'
},
});

describe('Firebase Functions', () => {
beforeEach(async () => {
await firebase.loadDatabaseRules({
databaseName: 'mydb',
rules: fs.readFileSync('database.rules.json', 'utf8'),
});
});

afterAll(async () => {
await Promise.all(firebase.apps().map((app) => app.delete()));
});

const cloudfunction = app.functions().httpsCallable('cloudfunction')

it('throws error if user is not authenticated', async () => {
await firebase.assertFail(cloudfunction())
})
});


这是抛出一个错误:

Error: Error: Response for preflight has invalid HTTP status code 404

最佳答案

在我看来,你不需要从你的单元测试中调用 firebase,因为不是你的业务是 firebase 是否正常工作,你需要测试你的业务逻辑,这意味着你将模拟调用firebase 并测试此方法的预期返回值,例如,您可以编写 2 种情况,通知将无错误地发送,第二种情况,如果 firebase 服务将返回失败,对于这 2 种情况,您的代码应该具有适当的行为。
测试 firebase 服务将由从事 firebase 工作的团队完成

关于javascript - 如何使用 Firebase 模拟器从单元测试中调用 firebase 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69185704/

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