【发布时间】:2018-02-01 15:54:44
【问题描述】:
我正在开发 Android 项目,前段时间我决定使用 Firebase,因为它似乎正是我想要的。确实它非常适合我的需求,但是依赖 Firebase 的测试功能对我来说是一场噩梦。没有官方模拟,所以我找到的唯一解决方案是创建 2 个 Firebase 项目(prod 和 dev 实例)并配置构建类型以针对不同的构建变体使用不同的项目。从技术上讲,它有效,但有一些缺点
- 我的测试不再相互独立,因为它们共享相同的数据库和身份验证上下文。
- 网络操作非常耗时。使用 Espresso 进行测试尤其困难,因为我不知道需要等待多长时间才能接收数据。
- 在测试前后设置和清理环境很困难。
- 异步方法不允许我为我的 DAO 对象创建方便的模拟,因为我无法将模拟数据提供给 ValueEventListener。
我不希望在这里找到灵丹妙药,但我确信我不是唯一一个在这些问题上苦苦挣扎的人,所以也许有人已经找到了至少绕过其中一些问题的方法?我也将不胜感激任何可以提供帮助的想法或链接。谢谢!
【问题讨论】:
标签: android unit-testing firebase firebase-realtime-database android-espresso