拥有基于firebase数据库的应用程序 - 其中项目通过Firebase回调异步加载(例如进入RecyclerView) - 我们将如何定义Espresso检查?
使用自定义IdlingResource
似乎有问题,因为ChildEventListener
的{{1}}回调,并没有告诉我们给定的孩子是否是最后一个(或者是吗?)
有没有办法告诉Firebase何时空闲"?
是否可能违背Firebase的精神来考虑它"闲置"在任何时候?
那么也许我们可以定义"本地闲置"?意味着没有本地发起的请求回调(以获取初始项目)正在等待...(而不是可以随时来自网络的新内容)。
答案 0 :(得分:4)
测试应该是密封的:您不应该依赖外部数据源。
创建产品风格,将Firebase数据源替换为假冒数据源,仅用于测试。这使您可以使用虚假数据进行测试,以进行可重复的测试。
Leveraging product flavors in Android Studio for hermetic testing
中解释了这个概念它已在Android Architecture Blueprints
中实施需要注意的是,您不会测试Firebase与您的应用之间的集成,但这些测试往往是flaky。