Javascript 使用本地JSON模拟Firebase进行测试?

Javascript 使用本地JSON模拟Firebase进行测试?,javascript,unit-testing,firebase,Javascript,Unit Testing,Firebase,我正在考虑一个使用Firebase作为数据存储的应用程序的测试策略。虽然端到端测试可以向实际后端发出请求,但能够对应用程序逻辑进行单元测试,而不必向Firebase发出请求,这将是一件好事 我一直在搜索web,寻找一种使用本地JSON文件之类的东西来模拟javascript Firebase服务的方法,但没有找到任何东西。这样的东西存在吗?如果没有,我会把它写下来发布在github上…更新 有关封装TDD与使用模拟进行单元测试的详细探讨,请参见和 原创帖子 要正确地模拟Firebase服务是非常

我正在考虑一个使用Firebase作为数据存储的应用程序的测试策略。虽然端到端测试可以向实际后端发出请求,但能够对应用程序逻辑进行单元测试,而不必向Firebase发出请求,这将是一件好事


我一直在搜索web,寻找一种使用本地JSON文件之类的东西来模拟javascript Firebase服务的方法,但没有找到任何东西。这样的东西存在吗?如果没有,我会把它写下来发布在github上…

更新

有关封装TDD与使用模拟进行单元测试的详细探讨,请参见和

原创帖子

要正确地模拟Firebase服务是非常困难的,就像模拟最复杂的数据存储一样。从模仿MySQL或MySQL的角度考虑这一点

假设您的目标是使本地环境脱机工作,那么一个快速的解决方案可能是使用本地实例。您可以获取,将其保存在本地,然后调用set(/*data*/)对其进行初始化以进行脱机操作


否则,最好的方法是将所有Firebase活动封装到一个类或库中。然后,您可以模拟该库而不是Firebase事件。对于库本身的准单元测试(从技术上讲,这些不是单元测试,因为它们依赖于外部服务),可以退回到本地脱机Firebase实例,或者建立一个开发人员数据库,并将生产数据(或一些种子数据)复制到那里。

我了解模拟数据存储的困难,但我认为有时是值得的。例如,我可以想象,想要(排序-)单元测试对特定firebase更改事件的应用程序级响应,如果有一个易于控制的模拟就好了。在我目前的情况下,你的离线解决方案正是我所需要的。谢谢你!你能解释一下离线解决方案吗?我正在尝试测试使用Firebase的应用程序,但不知道如何模拟返回的数据。现在有一个模拟可用。这并不理想,因为它要求您对Firebase的内部工作(例如本地缓存、同步本地事件等)有深入的了解,以创建复杂的测试,但这是一个非常好的起点:看看节点tdd和useNock标志。我们在dynamodb测试中使用它,但在firebase中也会使用它:第一次运行会自动记录请求签名和响应,而后续的执行只会使用它。