2017-01-13 25 views
1

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

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

有没有办法告诉Firebase何时“闲置”?

这是否违背了Firebase的精神,可以随时将其视为“闲置”?

那么也许我们可以定义“本地闲置”?意思是本地启动的请求回调(提取初始项目)正在等待......(而不是任何时候可能来自网络的新东西)。

回答

3

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

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

这个概念在Leveraging product flavors in Android Studio for hermetic testing

解释及在Android Architecture Blueprints

实现需要注意的是,你没有要测试火力地堡和您的应用程序之间的整合,但这些测试往往是flaky