使用内存中的 fake/db 测试 Firebase 数据库

Posted

技术标签:

【中文标题】使用内存中的 fake/db 测试 Firebase 数据库【英文标题】:Testing Firebase Database with an in-memory fake/db 【发布时间】:2018-10-31 00:05:48 【问题描述】:

Firebase 数据库是否有任何用于测试 android 客户端逻辑和集成的内存实现?我见过 node.js 的假货,但在 java 中找不到任何东西。我不是在寻找仅适用于基本单元测试的简单模拟。

【问题讨论】:

为什么投反对票? 【参考方案1】:

您必须重构您的应用程序,并实施一种架构方法。比如像MVP、MVVM、Clean等。主要是层。在这种情况下,您可以使用模拟对象相互独立地测试这些层。

在 Internet 上,您会找到很多关于此主题的文档, 例如Essential Guide For Designing Your Android App Architecture, Why to choose MVVM over MVP — Android Architecture 和许多其他人。

【讨论】:

这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review @zeh 据我所知,没有其他办法。好吧,或者在谷歌找份工作 这不是一个真正的答案。你的架构方法不会给我我正在寻找的东西。是的,理想情况下,谷歌应该提供一个假货来测试自己。你的评论比你的回答更能回答我的问题。 @adarsh 认为今天您需要 Firebase,明天您可能需要一个本地 sqlite 数据库进行缓存,而后天 - Firestore 而不是 Firebase。应用架构方法,您可以测试所有这些。是的,学习需要时间。 @tim4dev 先生,我很清楚,我不是在寻找单元测试,正如我在问题本身中提到的那样。这是集成测试。

以上是关于使用内存中的 fake/db 测试 Firebase 数据库的主要内容,如果未能解决你的问题,请参考以下文章

对于测试套件,用内存中的 HSQLDB 替换 MYSQL 不起作用

内存数据库中的 H2:使用 JDBC 设置时区? Java 单元测试

在 Laravel PHPUnit 测试中使用内存中的 SQLite

使用 Liquibase 为 Spring Boot 应用程序中的单元测试初始化​​内存 H2

如何使用内存数据库中的 sqlite 在 laravel 5.5 中运行单元测试

用于单元测试的内存存储中的 iOS 10 核心数据