Эспрессо для табуляции и просмотра пейджера внутри относительно того, как выполнить щелчок и пролистывание (kotlin) - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь протестировать свои приложения с помощью эспрессо

, когда я пытаюсь провести видоискатель, используя:

onView(withId(view_pager)).perform(swipeRight())

Я получаю ошибку: Ошибка при выполнении «быстрой прокрутки» при просмотре

, потому что я использую макет вкладки и просмотр пейджера, я пытаюсь щелкнуть элемент вкладки внутри представления вкладки, используя вот так:

onView(withId(tabItem)).perform(click())

и я получаю ошибку: Нет подходящих представлений в иерархии

Я также пытаюсь использовать тест записи эспрессо, заканчивая, когда я пытаюсь запустить с этим, я получаю сообщение об ошибке, подобное первому.

моя иерархия XML выглядит следующим образом:

<nested scroll>
        <relative>
            <linear>
                <tab layout>
                      <item1></item1>
                      <item2></item2>
                </tab layout>
                <view pager></view pager>
             </linear>
         </relative>
</nested>

1 Ответ

0 голосов
/ 27 октября 2018

Причина, по которой вы получаете Ошибка при выполнении 'действия' с представлением , из-за того, что ваше целевое представление не соответствует одному или нескольким ограничениям.А в вашем случае вы пытаетесь выполнить действие смахивания на ViewPager, и это действие требует, чтобы представление отображало на экране не менее 90%.Таким образом, весьма вероятно, что ваш ViewPager слишком высок, чтобы соответствовать ограничению, или нет места для выполнения действия.

Вы должны использовать ViewPagerActions.scrollRight на ViewPager вместо ViewActions.swipeRight .ViewPagerActions.scrollRight только проверяет, является ли представление частично отображаемым и более надежным, чем ViewActions.swipeRight.

И если вы получаете Не найдено ни одного представления в иерархии, совпадающего с , это означает, что оно не может найтипредставление, которое вы запрашиваете в onView, так что оно либо отсутствует, либо вы просто не на том экране.

...