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())