使用Robolectric断言上下文菜单

时间:2012-12-28 12:42:40

标签: android robolectric

情况如下:

我有一个ListView,当对项目执行长按时,会显示一个上下文菜单。我已经在模拟器上检查了它,但现在我想断言上下文菜单出现了。

有没有办法断言使用Robolectric显示了上下文菜单?

2 个答案:

答案 0 :(得分:1)

您可以模拟元素点击并检查onCreateContextMenu是否被调用

<强> UPD 我不太可能听从我的建议。我会做什么 - 有两个测试:

  1. 我会在创建活动后(或每当视图添加到活动时)检查视图是否具有正确的长按一下监听器
  2. 在我为这个特定视图调用后检查上下文菜单构造的代码是否正确
  3. 之后

    这种方法不需要间谍

答案 1 :(得分:0)

最后,我结束了public void registerForContextMenu(View view)的真正基本版本的实现:

view.setOnLongClickListener(new OnLongClickListener() {
    @Override
    public boolean onLongClick(View arg0) {
        realActivity.onCreateContextMenu(new TestContextMenu(), null,
            null);
        return true;
    }
});

制作一个非常简单的TestContextMenu实现,扩展TestMenu并添加静态引用到最后一个通过覆盖add和addSubMenu方法创建的TestContextMenu。