Struktura testowania espresso - Wyświetl twierdzenia

Jak wspomniano wcześniej, asercja widoku służy do potwierdzenia, że ​​zarówno rzeczywisty widok (znaleziony za pomocą dopasowań widoku), jak i oczekiwane widoki są takie same. Przykładowy kod jest następujący:

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

Tutaj,

  • onView () zwraca obiekt ViewInteration odpowiadający dopasowanemu widokowi. ViewInteraction służy do interakcji z dopasowanym widokiem.

  • withId (R.id.my_view) zwraca element dopasowujący widok, który będzie pasował do widoku (rzeczywistego), którego atrybuty id są równe my_view .

  • withText („Hello”) zwraca również element dopasowujący widok, który będzie pasował do widoku (oczekiwanego), którego atrybuty tekstowe są równe Hello .

  • check to metoda, która akceptuje argument typu ViewAssertion i wykonuje asercję przy użyciu przekazanego w obiekcie ViewAssertion .

  • Matching (withText („Hello”)) zwraca asercję widoku, która wykonareal jobtwierdzenia, że ​​zarówno rzeczywisty widok (znaleziony przy użyciu withId ), jak i oczekiwany widok (znaleziony przy użyciu withText ) są jednym i tym samym.

Poznajmy niektóre z metod zapewnianych przez framework testowy espresso do potwierdzania obiektów widoku.

nie istnieje()

Zwraca potwierdzenie widoku, które gwarantuje, że element dopasowujący widok nie znajdzie żadnego pasującego widoku.

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

W tym przypadku przypadek testowy zapewnia, że ​​nie ma widoku z tekstem Hello.

mecze()

Akceptuje docelowy element dopasowujący widok i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i pasuje do widoku dopasowanego przez element dopasowujący widok docelowy.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający identyfikator, R.id.textView_hello istnieje i pasuje do widoku docelowego z tekstem Hello World!

isBottomAlignedWith ()

Akceptuje element dopasowujący widok docelowy i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest wyrównany do dołu z dopasowaniem widoku docelowego.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający identyfikator, R.id.view istnieje i jest wyrównany do dołu z widokiem o identyfikatorze R.id.target_view .

isCompletelyAbove ()

Akceptuje docelowy element dopasowujący widok i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest umieszczony całkowicie powyżej elementu dopasowania widoku docelowego.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający id, R.id.view istnieje i jest umieszczony całkowicie powyżej widoku mającego id, R.id.target_view

isCompletelyBelow ()

Akceptuje docelowy element dopasowujący widok i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest umieszczony całkowicie poniżej elementu dopasowującego widok docelowy.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający id, R.id.view istnieje i jest umieszczony całkowicie poniżej widoku o identyfikatorze R.id.target_view .

isCompletelyLeftOf ()

Akceptuje docelowy element dopasowujący widok i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest umieszczony całkowicie na lewo od docelowego dopasowania widoku.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający id, R.id.view istnieje i jest umieszczony całkowicie na lewo od widoku z identyfikatorem, R.id.target_view

isCompletelyRightOf ()

Akceptuje docelowy element dopasowujący widok i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest umieszczony całkowicie na prawo od elementu dopasowującego widok docelowy.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający id, R.id.view istnieje i jest umieszczony całkowicie na prawo od widoku o identyfikatorze R.id.target_view.

isLeftAlignedWith ()

Akceptuje element dopasowujący widok docelowy i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest wyrównany do lewej z dopasowaniem widoku docelowego.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok o identyfikatorze, R.id.view istnieje i jest wyrównany do lewej z widokiem o identyfikatorze, R.id.target_view

isParticallyAbove ()

Akceptuje docelowy element dopasowujący widok i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest umieszczony częściowo nad docelowym elementem dopasowującym widok.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający id, R.id.view istnieje i jest umieszczony częściowo nad widokiem mającym id, R.id.target_view

isParticallyBelow ()

Akceptuje element dopasowujący widok docelowy i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest umieszczony częściowo poniżej elementu dopasowania widoku docelowego.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający id, R.id.view istnieje i jest umieszczony częściowo poniżej widoku o identyfikatorze R.id.target_view .

isParticallyLeftOf ()

Akceptuje docelowy element dopasowujący widok i zwraca potwierdzenie widoku, które zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest umieszczony częściowo na lewo od docelowego dopasowania widoku.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający id, R.id.view istnieje i jest umieszczony częściowo na lewo od widoku o identyfikatorze R.id.target_view .

isPartallyRightOf ()

Akceptuje docelowy element dopasowujący widok i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest umieszczony częściowo na prawo od docelowego dopasowania widoku

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający id, R.id.view istnieje i jest umieszczony częściowo na prawo od widoku o identyfikatorze, R.id.target_view .

isRightAlignedWith ()

Akceptuje element dopasowujący widok docelowy i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest wyrównany do prawej strony z elementem dopasowującym widok docelowy.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok mający id, R.id.view istnieje i jest wyrównany do prawej z widokiem mającym identyfikator, R.id.target_view .

isTopAlignedWith ()

Akceptuje element dopasowujący widok docelowy i zwraca potwierdzenie widoku, co zapewnia, że ​​element dopasowujący widok (rzeczywisty) istnieje i jest wyrównany do góry z dopasowaniem widoku docelowego.

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

W tym przypadku przypadek testowy zapewnia, że ​​widok o identyfikatorze, R.id.view istnieje i jest wyrównany do góry z widokiem o identyfikatorze, R.id.target_view

noEllipsizedText ()

Zwraca potwierdzenie widoku, które zapewnia, że ​​hierarchia widoków nie zawiera widoków wielokropka ani obciętych tekstów.

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

noMultilineButtons ()

Zwraca potwierdzenie widoku, które zapewnia, że ​​hierarchia widoku nie zawiera przycisków wielowierszowych.

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

noOverlaps ()

Zwraca potwierdzenie widoku, które zapewnia, że ​​obiekt podrzędny, który można przypisać do TextView lub ImageView, nie nakłada się na siebie. Ma inną opcję, która akceptuje element dopasowujący widok docelowy i zwraca potwierdzenie widoku, co zapewnia, że ​​widok podrzędny pasujący do widoku docelowego nie nakłada się.