在我的基于Firebase的应用中,我经常使用FirebaseRecyclerAdapter
课程。在设置测试期间,我遇到了populateViewHolder
多次为同一位置调用的问题(此日志输出显示了我的firebase位置中1个项目的情况:
-InstancesOverviewFragment: onCreate()
-InstancesOverviewFragment: Creating mAdapter()
-InstancesOverviewFragment: onViewCreated
-InstancesOverviewFragment: populateViewHolder for: 0, instance: Firebase model Instance: {"attendances":{"-KrGpYZA9qekLTy4LW2d"
-InstancesOverviewFragment: populateViewHolder for: 0, instance: Firebase model Instance: {"attendances":{"-KrGpYZA9qekLTy4LW2d"
-InstancesOverviewFragment: onDestroyView
-InstancesOverviewFragment: onDestroy
GUI只显示1个项目(这是正确的),但运行Espresso测试会导致问题,因为它们会抛出AmbiguousViewMatcherException
,因为有2个项目具有相同的内容。请注意,这似乎是一个时间问题:在测试中添加睡眠(500毫秒)时,问题不再出现。
我的问题:
populateViewHolder
方法是否正确? 2 :(如果1是正确的);使用FirebaseRecyclerAdapter
时运行Espresso测试的最佳做法是什么?它是否增加了短暂的睡眠?
感谢您的帮助!