加入Firebase的Espresso - 异步加载

时间:2017-01-13 18:46:50

标签: android firebase-realtime-database android-espresso ui-testing

拥有基于firebase数据库的应用程序 - 其中项目通过Firebase回调异步加载(例如进入RecyclerView) - 我们将如何定义Espresso检查

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

有没有办法告诉Firebase何时空闲"?

是否可能违背Firebase的精神来考虑它"闲置"在任何时候?

那么也许我们可以定义"本地闲置"?意味着没有本地发起的请求回调(以获取初始项目)正在等待...(而不是可以随时来自网络的新内容)。

1 个答案:

答案 0 :(得分:4)

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

创建产品风格,将Firebase数据源替换为假冒数据源,仅用于测试。这使您可以使用虚假数据进行测试,以进行可重复的测试。

Leveraging product flavors in Android Studio for hermetic testing

中解释了这个概念

它已在Android Architecture Blueprints

中实施

需要注意的是,您不会测试Firebase与您的应用之间的集成,但这些测试往往是flaky