Framework testowania espresso - zobacz działania

Jak dowiedzieliśmy się wcześniej, akcje widoku automatyzują wszystkie możliwe działania wykonywane przez użytkowników w aplikacji na Androida. Espresso onView i „onData” zapewniają metodę perform , która akceptuje działania widoku i wywołuje / automatyzuje odpowiednie działania użytkownika w środowisku testowym. Na przykład „click ()” to akcja widoku, która po przekazaniu do metody onView ( R.id.myButton ) .perform (click ()) uruchomi zdarzenie click przycisku (o identyfikatorze: „myButton” ) w środowisku testowym.

W tym rozdziale zapoznajmy się z działaniami widoku zapewnianymi przez framework testowy espresso.

Wpisz tekst()

typeText () przyjmuje jeden argument (tekst) typu String i zwraca akcję widoku. Zwrócona akcja widoku wpisuje podany tekst do widoku. Przed umieszczeniem tekstu stuka jeden raz w widok. Treść może być umieszczona w dowolnym miejscu, jeśli zawiera już tekst.

onView(withId(R.id.text_view)).perform(typeText("Hello World!"))

typeTextIntoFocusedView ()

typeTextIntoFocusedView () jest podobne do typeText () z tym wyjątkiem, że umieszcza tekst tuż obok pozycji kursora w widoku.

onView(withId(R.id.text_view)).perform(typeTextIntoFocusedView("Hello World!"))

replaceText ()

replaceText () jest podobny do typeText () z tą różnicą, że zastępuje zawartość widoku.

onView(withId(R.id.text_view)).perform(typeTextIntoFocusedView("Hello World!"))

czysty tekst()

clearText () nie ma argumentów i zwraca akcję widoku, która wyczyści tekst w widoku.

onView(withId(R.id.text_view)).perform(clearText())

naciśnij klawisz()

pressKey () akceptuje kod klucza (np. KeyEvent.KEYCODE_ENTER) i zwraca akcję przeglądania, która spowoduje naciśnięcie klawisza odpowiadającego kodowi klawisza.

onView(withId(R.id.text_view)).perform(typeText(
   "Hello World!", pressKey(KeyEvent.KEYCODE_ENTER))

pressMenuKey ()

pressMenuKey () nie ma argumentów i zwraca akcję widoku, która spowoduje naciśnięcie klawisza menu sprzętowego.

onView(withId(R.id.text_view)).perform(typeText(
   "Hello World!", pressKey(KeyEvent.KEYCODE_ENTER), pressMenuKey())

closeSoftKeyboard ()

closeSoftKeyboard () nie ma argumentów i zwraca akcję widoku, która zamknie klawiaturę, jeśli zostanie otwarta.

onView(withId(R.id.text_view)).perform(typeText(
   "Hello World!", closeSoftKeyboard())

Kliknij()

click () nie ma argumentów i zwraca akcję widoku, która wywoła akcję kliknięcia widoku.

onView(withId(R.id.button)).perform(click())

podwójne kliknięcie()

doubleClick () nie ma argumentów i zwraca akcję widoku, która wywoła akcję dwukrotnego kliknięcia widoku.

onView(withId(R.id.button)).perform(doubleClick())

longClick ()

longClick () nie ma argumentów i zwraca akcję widoku, która wywoła akcję długiego kliknięcia widoku.

onView(withId(R.id.button)).perform(longClick())

pressBack ()

pressBack () nie ma argumentów i zwraca akcję widoku, która spowoduje kliknięcie przycisku Wstecz.

onView(withId(R.id.button)).perform(pressBack())

pressBackUnconditionally ()

pressBackUnconditionally () nie ma argumentów i zwraca akcję widoku, która kliknie przycisk Wstecz i nie zgłosi wyjątku, jeśli akcja przycisku Wstecz kończy samą aplikację.

onView(withId(R.id.button)).perform(pressBack())

openLink ()

openLink () ma dwa argumenty. Pierwszy argument (tekst linku) jest typu Matcher i odsyła do tekstu znacznika kotwicy HTML. Drugi argument (url) jest typu Matcher i odsyła do adresu URL znacznika HTML kotwicy. Ma zastosowanie tylko do TextView . Zwraca akcję widoku, która zbiera wszystkie znaczniki kotwicy HTML dostępne w treści widoku tekstowego, znajduje znacznik kotwicy pasujący do pierwszego argumentu (tekst linku) i drugiego argumentu (adres URL), a na koniec otwiera odpowiedni adres URL. Rozważmy widok tekstu o treści jako -

<a href="http://www.google.com/">copyright</a>

Następnie link można otworzyć i przetestować za pomocą poniższego przypadku testowego,

onView(withId(R.id.text_view)).perform(openLink(is("copyright"),
   is(Uri.parse("http://www.google.com/"))))

Tutaj openLink pobierze zawartość widoku tekstowego, znajdzie link z prawami autorskimi jako tekst, www.google.com jako adres URL i otworzy adres URL w przeglądarce.

openLinkWithText ()

openLinkWithText () ma jeden argument, który może być typu ** String * lub Matcher. To po prostu skrót do metody openLink *.

onView(withId(R.id.text_view)).perform(openLinkWithText("copyright"))

openLinkWithUri ()

openLinkWithUri () ma jeden argument, który może być typu String lub Matcher. To jest po prostu krótkie cięcie do OpenLink * metody.

onView(withId(R.id.text_view)).perform(openLinkWithUri("http://www.google.com/"))

pressImeActionButton ()

pressImeActionButton () nie ma argumentów i zwraca akcję widoku, która wykona akcję ustawioną w konfiguracji android: imeOptions . Na przykład, jeśli android: imeOptions równa się actionNext, spowoduje to przeniesienie kursora do następnego możliwego widoku EditText na ekranie.

onView(withId(R.id.text_view)).perform(pressImeActionButton())

scrollTo ()

scrollTo () nie ma argumentów i zwraca akcję widoku, która przewinie dopasowany scrollView na ekranie.

onView(withId(R.id.scrollView)).perform(scrollTo())

swipeDown ()

swipeDown () nie ma argumentów i zwraca akcję widoku, która uruchomi akcję przesunięcia w dół na ekranie.

onView(withId(R.id.root)).perform(swipeDown())

przesuń palcem w górę()

swipeUp () nie ma argumentów i zwraca akcję widoku, która uruchomi akcję przesuwania w górę na ekranie.

onView(withId(R.id.root)).perform(swipeUp())

przesuń w prawo()

swipeRight () nie ma argumentów i zwraca akcję widoku, która uruchomi akcję machnięcia w prawo na ekranie.

onView(withId(R.id.root)).perform(swipeRight())

przesuń w lewo()

swipeLeft () nie ma argumentów i zwraca akcję widoku, która uruchomi akcję machnięcia w lewo na ekranie.

onView(withId(R.id.root)).perform(swipeLeft())