Я использую Espresso для проверки списка, которое появляется, когда я ищу элемент (например, автозаполнение). Просмотр списка не появляется, пока пользователь не набрал что-то в SearchView. то есть я установил ListView в View.VISIBLE
только тогда, когда пользователь набрал что-то в SearchView.android.support.test.espresso.PerformException: Ошибка при выполнении «данных адаптера нагрузки» на вид
. Я получаю эту ошибку при попытке щелкнуть по тексту в виде списка. android.support.test.espresso.PerformException: Error performing 'load adapter data' on view 'with id:'
. Использование onData не сработало.
Добавление искусственной задержки работает, но я не уверен, если это плохая практика, так как это, кажется, поражение цели таких методов, как onData
и т.д.
Что я пробовал:
Я пробовал посмотреть, что делает тестовый магнитофон Espresso, но когда я использую код тестового регистратора, я получаю ошибку выше. Я считаю, что это связано с тем, что рекордер вводит некоторую задержку.
Я прочитал эти StackOverflow вопросы, но они не решают мою проблему:
Мой код
Этот код работает, но я бы предпочел не вводить искусственную задержку.
public pickSuggestion(int index){
/** artificial delay to allow list to appear.
This works but I shouldn't have to do this right? **/
SystemClock.sleep(1000);
onData(anything())
.inAdapterView(withId(R.id.list))
.atPosition(index)
.onChildView(withId(R.id.mTextView))
.perform(click());
}