2016-05-13 57 views
0

我使用espresso測試應用程序。這個應用程序有2個ListViews,特濃咖啡onData函數找到兩個ListViews,但它們有不同的ID。espresso onData是否與層次結構中的多個視圖匹配?

代碼:

onData(withId(R.id.order_jijia_listview)).perform(ViewActions.click()); 

結果:

ListView{id=2131493579, res-name=order_jijia_listview, visibility=VISIBLE, width=768, 
      height=659, has-focus=false, has-focusable=true, has-window-focus=true, 
      is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, 
      is-layout-requested=false, is-selected=false, root-is-layout-requested=false, 
      has-input-connection=false, x=0.0, y=345.0, child-count=7} ****MATCHES**** 

ListView{id=2131493586, res-name=order_jijia_pop_listview, visibility=VISIBLE, width=0, 
      height=0, has-focus=false, has-focusable=false, has-window-focus=true, 
      is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, 
      is-layout-requested=true, is-selected=false, root-is-layout-requested=false, 
      has-input-connection=false, x=0.0, y=0.0, child-count=0} 

回答

0

第二ListView中沒有被標記爲****MATCHES****,所以問題是不存在。

您應該只爲ListView元素使用onData,而不是ListView本身。 要找到ListView控件,您需要使用onView

onView(withId(R.id.order_jijia_listview)).perform(ViewActions.click()); 

你想實現什麼?點擊列表元素? 因此,你需要使用onData複雜的匹配爲:

onData(allOf(is(instanceOf(String.class)), is("Americano"))).perform(click()); 

您可以閱讀official espresso tutorial更多關於onDataonView