测试 Firebase 云功能 - 验证数据库更改



基于单元测试云函数的文档,我了解如何通过断言响应是我所期望的来有效地测试相当简单的云函数。但是,我有一些有点复杂的云函数,在我的数据库中更改一种类型的数据时,一些私有方法检索一些其他类型的数据,对这些进行计算,然后我将一些数据库更新调用放入一个承诺数组中,并对其调用Promise.all(my_array)以完成我的云函数执行。

这导致响应是一个长度和组成可变的数组,这很难验证。

相反,我希望能够按如下所示的顺序测试云函数:

  • 设置初始数据库
  • 触发一个可以函数
  • 检查更新的数据库是否如我预期

是否可以对firebase-functions-test库做这样的事情?我该怎么做?我知道上述场景更像是一个集成测试,但我仍然想知道所述库是否能够处理它。

您所描述的内容应该都可以通过Firebase模拟器套件来实现(并且更适合(,即:

Firebase 本地模拟器套件由单独的服务模拟器组成,旨在准确模拟 Firebase 服务的行为。这意味着您可以将应用直接连接到这些模拟器,以执行集成测试或 QA,而无需接触生产数据。

例如,可以将应用连接到 Firestore 模拟器,以便在测试中安全地读取和写入文档。这些写入可能会触发云函数模拟器中的函数。但是,当模拟器不可用或未配置时,您的应用仍会继续与正式版 Firebase 服务通信。

有关此内容的详细信息,请参阅文档。

最新更新