2016-07-19 10 views
0

Ich versuche einen Test mit Espresso zu schreiben. Ich stehe fest, weil Espresso nicht zwischen zwei Schaltflächen (admin_server_trash) unterscheiden kann, die auf dem Bildschirm angezeigt werden, da sie identisch zu sein scheinen. Innerhalb der eigentlichen Codebasis wirken die Schaltflächen basierend auf dem, was sich links von ihnen befindet. Wie kann ich das in Espresso umsetzen?Espresso kann nicht zwischen identischen Tasten unterscheiden

Der Fehler, der angezeigt wird, ist unten und die Zeile, die den Fehler verursacht, ist auch unten.

android.support.test.espresso.AmbiguousViewMatcherException: 'with id: com.revelwood.quantum:id/admin_server_trash' matches multiple views in the hierarchy.

@Test 
public void TestManageServerAddGood() 
{ 
    ... 
    onView(withId(R.id.admin_server_trash)).perform(click()); 
} 

Auch hier sind die zwei Tasten mit den Fehlern. Sie scheinen identisch zu sein, also kann ich nicht herausfinden, wie man Espresso bekommt, um sie zu unterscheiden.

+---------->AppCompatImageButton{id=2131624221, res-name=admin_server_trash, desc=image, visibility=VISIBLE, width=63, height=63, 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=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=933.0, y=33.0} ****MATCHES****

+---------->AppCompatImageButton{id=2131624221, res-name=admin_server_trash, desc=image, visibility=VISIBLE, width=63, height=63, 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=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=933.0, y=33.0} ****MATCHES****

Antwort

1

Ich fand es heraus! Es war überraschend einfach. Verwenden Sie einfach den hasSibling-Matcher, der mit Espresso geliefert wird, um herauszufinden, womit er übereinstimmt.

 onView(allOf(is((withId(R.id.admin_server_trash))), hasSibling(withText(nickname)))) 
      .perform(click()); 
Verwandte Themen