带有 Firebase 的 Espresso - 异步加载

Kar*_*pka 4 android ui-testing android-espresso firebase-realtime-database

拥有一个基于 firebase DB 的应用程序 - 其中项目通过 Firebase 回调异步加载(例如到 RecyclerView) -我们将如何定义 Espresso check

使用自定义IdlingResource似乎有问题,因为ChildEventListeneronChildAdded回调并没有告诉我们给定的孩子是否是最后一个(或者是吗?)。

有没有办法判断 Firebase 何时“空闲”?

随时将其视为“空闲”是否可能违反 Firebase 的精神?

那么也许我们可以定义“本地空闲”?这意味着没有本地发起的请求回调(以获取初始项目)待处理......(与可以随时来自网络的新内容相反)。

Jos*_*eca 5

测试应该是密封的:您不应该依赖于外部数据源。

创建一种产品风格,用仅在测试中使用的虚假数据源替换 Firebase 数据源。这使您可以使用虚假数据进行测试,以进行可重复的测试。

此概念在利用 Android Studio 中的产品风味进行密封测试中进行了解释

它是在Android 架构蓝图中实现的

需要注意的是,您不会测试 Firebase 和您的应用程序之间的集成,但这些测试往往是不稳定的