2016-05-13 51 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