Android Robotium - 如何检测上下文菜单?

时间:2012-12-03 21:09:15

标签: android robotium

我正在编写一个Robotium测试,我长按列表中的项目以显示上下文菜单。我需要以某种方式检测我的tearDown中的上下文菜单,以便我可以退出它并退出应用程序。我该怎么做?

2 个答案:

答案 0 :(得分:0)

不确定使用最新的Robotium版本是否有更好的方法,但我们在早期版本中发现了一个功能性黑客:

  private ListView getContextMenuListView(){
    ArrayList<ListView> currentListViews = solo.getCurrentListViews();
    for (ListView lv : currentListViews){
      String listViewClassName = lv.getClass().getName();
      if (listViewClassName.startsWith("com.android.internal.app.AlertController$RecycleListView")){
        return lv;
      }
    }
    return null;
  }

请注意,与其他所有内容一样,您需要等待以便弹出列表视图。如果您立即尝试找到它,您可能会错过它,尤其是在模拟器中运行时。

答案 1 :(得分:0)

finishOpenedActivities应关闭您已打开的所有活动但我假设您需要执行某些特定操作以清除您的拆卸方法中的应用程序状态。在这种情况下,你将不得不检查是否存在上下文菜单,我假设你有代码要做,因为你正在做上下文菜单(或者看看dmons答案)。

第二种选择当然是值得投入的时间是建立你的应用程序/测试基础架构一个简单的方法来删除所有状态,以便你的撕裂是一致的,所有开始没有以前的状态,做从长远来看,这将使你的测试更好,并允许更快的开发,因为通常你必须记住做x和y和z以清除状态,你将忘记其中一个,这将是一个痛苦的追踪。 / p>