Можно ли утверждать, что отображается на нескольких просмотрах с помощью эспрессо? - PullRequest
0 голосов
/ 12 ноября 2018

Мне интересно, возможно ли создать пользовательское сопоставление, которое может взять все указанные представления и сделать утверждение для этого массива или коллекции.

В качестве потенциального примера это будет выглядеть так:

onView( (withAllIds(R.id.text_view1,R.id.text_view2, R.id.text_view3))).check(matches(isDisplayed())

Для clariy, вышеприведенное будет утверждать, что текстовые представления 1, 2 и 3 все отображаются.

Является ли это запахом кода или нет, мне любопытно услышать мысли и мнения. Я бы использовал это, чтобы сделать простое утверждение о том, что ожидаемые представления отображаются на уровне пользовательского интерфейса, и, возможно, соединить его с isCompletelyDisplayed(), чтобы ничего не обрезалось. Написание тестов / утверждений по отдельности позволило бы упростить отладку в случае сбоя, но в наборе потребовалось бы больше времени, чтобы каждый тест выполнялся отдельно на CI.

При желании, есть ли лучший способ проверить эти простые утверждения вида? Стоит ли оно того?

Я обычно поклонник тестирования взаимодействия с приложением, например если приложение действительно что-то делает, пользовательский интерфейс обрабатывает это правильно, или если API возвращает ответ, то пользовательский интерфейс обрабатывает это правильно.

Но мне любопытно, можно ли использовать что-то вроде everyItem примера Hamcrest для нескольких видов с Espresso.

Referencing:

http://hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/core/Every.html

everyItem example from Hamcrest

...