2012-12-28 65 views
1

情況如下:使用Robolectric斷言上下文菜單

我有一個ListView,當對項目執行長按操作時,會顯示一個上下文菜單。我在模擬器上檢查過它,但現在我想斷言上下文菜單出現了。

有沒有辦法斷言上下文菜單已經顯示使用Robolectric?

回答

0

在我已經結束implementeing的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並添加靜態引用通過重寫添加和addSubMenu方法創建的最後一個TestContextMenu。

1

可以效仿元素點擊,並檢查onCreateContextMenu被稱爲

UPD 我不會跟着大概我的建議。我會做什麼 - 有兩個測試:

  1. 我會檢查活動之後創建(或每當視圖被添加到活動)的觀點有正確的長按聽衆
  2. 後,我會檢查代碼上下文菜單的建設調用這個特定視圖時正確工作

你不需要間諜在這種方法中

+0

我該如何檢查onCreateContextMenu被稱爲w/o使用標誌? – Alfergon

+0

'Mockito.spy'可以幫到你 –