2015-06-26 2 views
1

В моих функциональных тестах при использовании эспрессо я хочу щелкнуть мышью по виду внутри заголовка в ListView.Заголовок эспрессо без кликов

Согласно https://code.google.com/p/android-test-kit/wiki/EspressoSamples#Matching_a_view_that_is_a_footer/header_in_a_ListView, чтобы иметь доступ к заголовку в моем тесте я должен сделать это:

listView.addHeaderView(headerView, HEADER, true); 

И доступ к нему, как это:

public static Matcher<Object> isHeader() { 
    return allOf(is(instanceOf(String.class)), Matchers.<Object>is(TestUtil.HEADER)); 
} 

&

onData(ViewMatchers.isHeader()) 
     .inAdapterView(allOf(withId(R.id.list_view), isDisplayed())) 
     .onChildView(withId(R.id.view_to_click)) 
     .check(matches(isDisplayed())) 
     .perform(click()); 

Однако, когда я это сделаю, мой заголовок будет доступен для кликов.

, когда я использую:

listView.addHeaderView(headerView, HEADER, false); 

эспрессо не будет иметь доступ к моей точке зрения больше.

Как я могу получить доступ к представлению из моего теста, не делая просмотр заголовка доступным?

ответ

0

До сих пор лучший обходной я нашел в том, чтобы сделать следующее:

Установите данные на headerView.

listView.addHeaderView(header, TestUtil.HEADER, true); 

Игнорирует нажмите на headerView.

@Override 
public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id) { 
    // Ignore the headerView. 
    if (position == 0) { 
     return; 
    } 
    ... 
} 

Скрыть изменения пользовательского интерфейса на заголовок мыши.

android:listSelector="@android:color/transparent" 
Смежные вопросы