我正在考虑针对其数据存储使用Firebase的应用的测试策略。虽然端到端测试可以向实际后端发出请求,但是能够对不必须向Firebase发送的应用程序逻辑进行单元测试会很好。
我一直在网上寻找一种方法来使用像本地JSON文件来模拟javascript Firebase服务,但是没有找到任何东西。这样的事情存在吗?如果没有,我会把它写在github上发布...
答案 0 :(得分:7)
<强>更新强>
有关封装的TDD与使用模拟进行单元测试的详细信息,请参阅this gist和this post。
原帖
正确模拟Firebase服务将非常困难,因为它会模拟大多数复杂的数据存储。可以通过模拟MySQL或mocking MongoDB来考虑这一点。
假设您的目标是使本地环境脱机工作,快速解决方案可能是使用本地实例。您可以抓取firebase-debug.js,将其保存在本地,然后调用set(/ * data * /)将其初始化为脱机操作。
否则,您最好的方法是将所有Firebase活动封装到一个类或库中。然后,您可以模拟该库而不是Firebase事件。对于准单元测试(这些在技术上不是单元测试,因为它们依赖于外部服务)库本身,可以回退到本地离线Firebase实例或设置开发数据库并复制生产数据(或一些种子数据)那里。