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

时间:2020-01-06 08:53:41

标签: firebase unit-testing google-cloud-functions

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

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

相反,我希望能够按以下顺序测试云功能:

  • 设置初始数据库
  • 触发可能起作用的功能
  • 检查更新的数据库是否全部符合我的预期

是否可以使用firebase-functions-test库执行类似的操作?我该怎么做?我了解上述情况更多是集成测试,但我仍然想知道所说的库是否能够处理它。

1 个答案:

答案 0 :(得分:0)

您所描述的内容应该可以通过Firebase仿真器套件实现,并且更适合:

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

例如,您可以将您的应用程序连接到Firestore模拟器,以安全地在测试中读写文档。这些写操作可能会触发Cloud Functions模拟器中的功能。但是,当模拟器不可用或未配置时,您的应用仍将继续与生产Firebase服务进行通信。

有关更多信息,请参见documentation