firebaseRecyclerAdapter的populateViewHolder方法多次调用,导致AmbiguousViewMatcherException

时间:2017-08-11 16:48:08

标签: firebase firebase-realtime-database android-espresso firebaseui

在我的基于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毫秒)时,问题不再出现。

我的问题:

  1. 多次调用populateViewHolder方法是否正确?
  2. 2 :(如果1是正确的);使用FirebaseRecyclerAdapter时运行Espresso测试的最佳做法是什么?它是否增加了短暂的睡眠?

    感谢您的帮助!

0 个答案:

没有答案