测试firebase云功能-验证数据库更改
基于单元测试云函数的概念,我了解如何通过断言响应是我所期望的响应来有效地测试相当简单的云函数。然而,我有一些稍微复杂的云函数,在数据库中一种类型的数据发生变化时,许多私有方法检索一些其他类型的数据,对这些数据进行计算,然后我将一些数据库更新调用放入一个Promise数组,并调用测试firebase云功能-验证数据库更改,firebase,unit-testing,google-cloud-functions,Firebase,Unit Testing,Google Cloud Functions,基于单元测试云函数的概念,我了解如何通过断言响应是我所期望的响应来有效地测试相当简单的云函数。然而,我有一些稍微复杂的云函数,在数据库中一种类型的数据发生变化时,许多私有方法检索一些其他类型的数据,对这些数据进行计算,然后我将一些数据库更新调用放入一个Promise数组,并调用Promise.all(我的数组)来完成我的云功能执行 这导致响应是一个长度和组成可变的数组,这很难验证 相反,我更希望能够按如下顺序测试云功能: 设置初始数据库 触发器a可能会起作用 检查更新的数据库,如果一切都如我所
Promise.all(我的数组)
来完成我的云功能执行
这导致响应是一个长度和组成可变的数组,这很难验证
相反,我更希望能够按如下顺序测试云功能:
- 设置初始数据库
- 触发器a可能会起作用
- 检查更新的数据库,如果一切都如我所料
是否可以使用
firebase函数测试库执行类似操作?我该怎么做?我理解上述场景更多的是一个集成测试,但我想知道所述库是否能够处理它。您所描述的应该都可以(并且更适合)Firebase emulator套件,它是:
Firebase本地仿真器套件由单个服务仿真器组成,这些仿真器用于准确模拟Firebase服务的行为。这意味着您可以将应用程序直接连接到这些模拟器,以执行集成测试或QA,而无需接触生产数据
例如,您可以将应用程序连接到Firestore emulator,以便在测试中安全地读写文档。这些写入可能会触发云函数模拟器中的函数。但是,当模拟器不可用或未配置时,您的应用程序仍将继续与Firebase生产服务通信
有关这方面的更多信息,请参阅