Учебники

Espresso Testing Framework — Просмотр утверждений

Как обсуждалось ранее, утверждение представления используется для подтверждения того, что как фактическое представление (найденное с использованием сопоставлений представлений), так и ожидаемые представления являются одинаковыми. Пример кода выглядит следующим образом:

onView(withId(R.id.my_view)) .check(matches(withText("Hello")))

Вот,

  • onView () возвращает объект ViewInstruction, соответствующий сопоставленному виду. ViewInteraction используется для взаимодействия с согласованным представлением.

  • withId (R.id.my_view) возвращает сопоставление представления, которое будет соответствовать представлению (фактическому), имеющему атрибуты id, равные my_view .

  • withText («Hello») также возвращает сопоставление представления, которое будет соответствовать представлению (ожидаемому), имеющему текстовые атрибуты, равные Hello .

  • check — это метод, который принимает аргумент типа ViewAssertion и делает утверждение, используя переданный в объекте ViewAssertion .

  • match (withText («Hello»)) возвращает утверждение представления, которое выполнит реальную работу по утверждению, что как фактическое представление (найденное с использованием withId ), так и ожидаемое представление (найденное с использованием withText ) — одно и то же.

onView () возвращает объект ViewInstruction, соответствующий сопоставленному виду. ViewInteraction используется для взаимодействия с согласованным представлением.

withId (R.id.my_view) возвращает сопоставление представления, которое будет соответствовать представлению (фактическому), имеющему атрибуты id, равные my_view .

withText («Hello») также возвращает сопоставление представления, которое будет соответствовать представлению (ожидаемому), имеющему текстовые атрибуты, равные Hello .

check — это метод, который принимает аргумент типа ViewAssertion и делает утверждение, используя переданный в объекте ViewAssertion .

match (withText («Hello»)) возвращает утверждение представления, которое выполнит реальную работу по утверждению, что как фактическое представление (найденное с использованием withId ), так и ожидаемое представление (найденное с использованием withText ) — одно и то же.

Давайте изучим некоторые методы, предоставляемые средой тестирования эспрессо для утверждения объектов представления.

не существует()

Возвращает утверждение представления, которое гарантирует, что сопоставитель представления не найдет подходящего представления.

onView(withText("Hello")) .check(doesNotExist());

Здесь тестовый пример гарантирует, что нет представления с текстом Hello.

Матчи()

Принимает целевое сопоставление представления и возвращает утверждение представления, которое гарантирует, что сопоставление представления (фактическое) существует и совпадает с представлением, сопоставленным сопоставителем представления цели.

onView(withId(R.id.textView_hello)) .check(matches(withText("Hello World!")));

Здесь тестовый пример гарантирует, что представление с идентификатором R.id.textView_hello существует и соответствует целевому представлению с текстом Hello World!

isBottomAlignedWith ()

Принимает сопоставление вида цели и возвращает утверждение вида, которое гарантирует, что сопоставление вида (фактическое) существует и выровнено снизу с сопоставителем вида цели.

onView(withId(R.id.view)) .check(isBottomAlignedWith(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление, имеющее идентификатор R.id.view, существует и выровнено снизу с представлением, имеющим идентификатор R.id.target_view .

isCompletelyAbove ()

Принимает целевое сопоставление вида и возвращает утверждение вида, которое гарантирует, что сопоставление вида (фактическое) существует и полностью расположено над целевым сопоставлением вида.

onView(withId(R.id.view)) .check(isCompletelyAbove(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление, имеющее идентификатор R.id.view, существует и располагается полностью над представлением, имеющим идентификатор R.id.target_view.

isCompletelyBelow ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и находится полностью ниже целевого сопоставления вида.

onView(withId(R.id.view)) .check(isCompletelyBelow(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление, имеющее идентификатор R.id.view, существует и располагается полностью под представлением, имеющим идентификатор R.id.target_view .

isCompletelyLeftOf ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и находится полностью слева от целевого сопоставления вида.

onView(withId(R.id.view)) .check(isCompletelyLeftOf(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление с идентификатором R.id.view существует и позиционируется полностью слева от представления с идентификатором R.id.target_view

isCompletelyRightOf ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и находится полностью справа от целевого сопоставления вида.

onView(withId(R.id.view)) .check(isCompletelyRightOf(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление, имеющее идентификатор R.id.view, существует и позиционируется полностью справа от представления, имеющего идентификатор R.id.target_view.

isLeftAlignedWith ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и выровнено по левому краю с сопоставителем целевого представления.

onView(withId(R.id.view)) .check(isLeftAlignedWith(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление с идентификатором R.id.view существует и выровнено по левому краю с представлением с идентификатором R.id.target_view

isPartiallyAbove ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и находится частично над целевым сопоставлением вида.

onView(withId(R.id.view)) .check(isPartiallyAbove(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление, имеющее идентификатор R.id.view, существует и находится частично над представлением, имеющим идентификатор R.id.target_view.

isPartiallyBelow ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и находится частично ниже целевого сопоставления вида.

onView(withId(R.id.view)) .check(isPartiallyBelow(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление, имеющее идентификатор R.id.view, существует и находится частично ниже представления, имеющего идентификатор R.id.target_view .

isPartiallyLeftOf ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и находится частично слева от целевого сопоставления вида.

onView(withId(R.id.view)) .check(isPartiallyLeftOf(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление, имеющее идентификатор R.id.view, существует и располагается частично слева от представления, имеющего идентификатор R.id.target_view .

isPartiallyRightOf ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и находится частично справа от целевого сопоставления вида

onView(withId(R.id.view)) .check(isPartiallyRightOf(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление, имеющее идентификатор R.id.view, существует и частично позиционируется справа от представления, имеющего идентификатор R.id.target_view .

isRightAlignedWith ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и выровнено по правому краю с сопоставителем целевого представления.

onView(withId(R.id.view)) .check(isRightAlignedWith(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление с идентификатором R.id.view существует и выровнено по правому краю с представлением с идентификатором R.id.target_view .

isTopAlignedWith ()

Принимает целевое сопоставление вида и возвращает утверждение представления, которое гарантирует, что сопоставление вида (фактическое) существует и выровнено по верху с целевым сопоставлением представления.

onView(withId(R.id.view)) .check(isTopAlignedWith(withId(R.id.target_view)))

Здесь тестовый пример гарантирует, что представление с идентификатором R.id.view существует и выровнено по верху с представлением с идентификатором R.id.target_view

noEllipsizedText ()

Возвращает утверждение представления, которое гарантирует, что иерархия представления не содержит эллиптические или отрезанные текстовые представления.

onView(withId(R.id.view)) .check(noEllipsizedText());

noMultilineButtons ()

Возвращает утверждение представления, которое гарантирует, что иерархия представления не содержит многострочных кнопок.

onView(withId(R.id.view)) .check(noMultilineButtons());

noOverlaps ()

Возвращает утверждение представления, которое гарантирует, что объект-потомок, назначаемый TextView или ImageView, не перекрывает друг друга. У него есть другая опция, которая принимает сопоставление целевого представления и возвращает утверждение представления, которое гарантирует, что дочернее представление, соответствующее целевому представлению, не перекрывается.