Framework de test Espresso - Afficher les actions

Comme appris précédemment, les actions d'affichage automatisent toutes les actions possibles exécutables par les utilisateurs dans une application Android. Espresso onView et «onData» fournissent la méthode perform , qui accepte les actions de vue et appelle / automatise les actions utilisateur correspondantes dans l'environnement de test. Par exemple, "click ()" est une action de vue qui, lorsqu'elle est transmise à la méthode onView ( R.id.myButton ) .perform (click ()) , déclenchera l'événement click du bouton (avec l'ID: "myButton" ) dans l'environnement de test.

Dans ce chapitre, apprenons les actions d'affichage fournies par le framework de test espresso.

typeText ()

typeText () accepte un argument (texte) de type String et renvoie une action de vue. L'action de vue renvoyée tape le texte fourni dans la vue. Avant de placer le texte, il appuie une fois sur la vue. Le contenu peut être placé à une position arbitraire s'il contient déjà du texte.

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

typeTextIntoFocusedView ()

typeTextIntoFocusedView () est similaire à typeText () sauf qu'il place le texte juste à côté de la position du curseur dans la vue.

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

replaceText ()

replaceText () est similaire à typeText () sauf qu'il remplace le contenu de la vue.

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

effacer le texte()

clearText () n'a aucun argument et renvoie une action de vue, qui effacera le texte de la vue.

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

appuyez sur la touche()

pressKey () accepte le code clé (par exemple KeyEvent.KEYCODE_ENTER) et retourne une action de vue, qui appuiera sur la touche correspond au code clé.

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

pressMenuKey ()

pressMenuKey () n'a pas d'arguments et renvoie une action de vue, qui appuiera sur la touche de menu matérielle.

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

closeSoftKeyboard ()

closeSoftKeyboard () n'a pas d'arguments et renvoie une action de vue, qui fermera le clavier, s'il en est ouvert.

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

Cliquez sur()

click () n'a pas d'arguments et renvoie une action de vue, qui appellera l'action de clic de la vue.

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

doubleCliquez ()

doubleClick () n'a pas d'arguments et renvoie une action de vue, qui appellera l'action de double-clic de la vue.

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

longClick ()

longClick () n'a pas d'arguments et renvoie une action de vue, qui invoquera l'action de clic long de la vue.

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

pressBack ()

pressBack () n'a aucun argument et renvoie une action de vue, qui cliquera sur le bouton de retour.

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

pressBackUnconditionally ()

pressBackUnconditionally () n'a aucun argument et renvoie une action de vue, qui cliquera sur le bouton de retour et ne lèvera pas d'exception si l'action du bouton de retour quitte l'application elle-même.

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

ouvrir le lien()

openLink () a deux arguments. Le premier argument (texte du lien) est de type Matcher et fait référence au texte de la balise d'ancrage HTML. Le deuxième argument (url) est du type Matcher et fait référence à l'url de la balise d'ancrage HTML. Elle s'applique uniquement à TextView . Il renvoie une action de vue, qui collecte toutes les balises d'ancrage HTML disponibles dans le contenu de la vue texte, trouve la balise d'ancrage correspondant au premier argument (texte du lien) et au second argument (url) et ouvre enfin l'url correspondante. Considérons une vue de texte ayant le contenu comme -

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

Ensuite, le lien peut être ouvert et testé en utilisant le cas de test ci-dessous,

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

Ici, openLink obtiendra le contenu de la vue texte, trouvera le lien ayant le droit d'auteur sous forme de texte, www.google.com comme URL et ouvrira l'url dans un navigateur.

openLinkWithText ()

openLinkWithText () a un argument, qui peut être de type ** String * ou Matcher. Il s'agit simplement d'un raccourci vers la méthode openLink *.

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

openLinkWithUri ()

openLinkWithUri () a un argument, qui peut être de type String ou Matcher. Il est tout simplement une courte coupe à la OpenLink méthode *.

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

pressImeActionButton ()

pressImeActionButton () n'a pas d'arguments et renvoie une action de vue, qui exécutera l'action définie dans la configuration android: imeOptions . Par exemple, si android: imeOptions est égal à actionNext, cela déplacera le curseur vers la prochaine vue EditText possible à l'écran.

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

scrollTo ()

scrollTo () n'a pas d'arguments et retourne une action de vue, qui fera défiler le scrollView correspondant à l'écran.

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

balayez vers le bas()

swipeDown () n'a pas d'arguments et renvoie une action de vue, qui déclenchera une action de balayage vers le bas à l'écran.

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

balayez vers le haut()

swipeUp () n'a pas d'arguments et renvoie une action de vue, qui déclenchera une action de balayage vers le haut à l'écran.

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

swipeDroite ()

swipeRight () n'a pas d'arguments et renvoie une action de vue, qui déclenchera une action de balayage vers la droite sur l'écran.

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

swipeGauche ()

swipeLeft () n'a pas d'arguments et renvoie une action de vue, qui déclenchera une action de balayage vers la gauche à l'écran.

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