2015-07-15 4 views
0

Я пытаюсь запустить тест эспрессо с использованием onData, и все работает отлично для представления, в котором есть только один AdapterView. Однако, когда на экране отображается вид, который имеет несколько видов переходников вложенных в него, я получаю:Espresso: android.support.test.espresso.AmbiguousViewMatcherException для AdapterView

android.support.test.espresso.AmbiguousViewMatcherException: «присваиванию из класса: класс android.widget.AdapterView» матчи несколько представлений в иерархии.

Есть ли способ указать, какой вид адаптера onData следует смотреть?

ответ

0

Для ответа давайте предположим, что одно из ваших адаптивных представлений - это ExpandableListView, а другое - ListView и что их можно легко идентифицировать по их уникальному идентификатору в файле макета.

Все, что вам нужно сделать, это использовать isDescendentOfA Искателя, чтобы изолировать нужный AdapterView так:

onData(...). 
inAdapterView(allOf(
    isAssignableFrom(AdapterView.class), 
    isDescendantOfA(withId(R.id.listView)))) 

Однако, если ваши взгляды адаптера не имеют разные идентификаторы, просто просматривать их различные атрибуты, и вы можете найти уникально идентифицируемые свойства, против которых вы можете сузить свой выбор.