作者:手机用户2502928341 | 来源:互联网 | 2023-06-11 16:22
拥有一个基于FirebaseDB的应用程序-通过Firebase回调将项目异步加载(例如,加载到RecyclerView中)-我们将如何定义EspressoCheck?使用自定义的
拥有一个基于Firebase DB的应用程序-通过Firebase回调将项目异步加载(例如,加载到RecyclerView中)-我们将如何定义Espresso Check?
使用自定义的IdlingResource似乎有问题,因为ChildEventListener的onChildAdded回调不会告诉我们给定的子项是否是最后一个子项(或者是?).
有没有办法告诉Firebase什么时候是“空闲”?
随时认为它“空闲”是否符合Firebase的精神?
那么也许我们可以定义“本地空闲”?意味着没有任何本地发起的请求回调(以获取初始项)正在等待处理(与随时可能来自网络的新东西相对).
解决方法:
测试应该是封闭的:您不应该依赖外部数据源.
创建一种产品样式,在其中您将Firebase数据源替换为仅在测试中使用的虚假数据源.这使您可以使用假数据进行测试,以进行可重复的测试.
Leveraging product flavors in Android Studio for hermetic testing中对此概念进行了解释
它在Android Architecture Blueprints中实现
需要注意的是,您不会测试Firebase与应用程序之间的集成,但是这些测试通常是flaky.