Espresso Testing Framework - Visualizza asserzioni

Come discusso in precedenza, l'asserzione di visualizzazione viene utilizzata per affermare che sia la visualizzazione effettiva (trovata utilizzando i match di visualizzazione) sia le visualizzazioni previste sono le stesse. Un codice di esempio è il seguente,

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

Qui,

  • onView () restituisce l' oggetto ViewInteration corrispondente alla vista corrispondente. ViewInteraction viene utilizzato per interagire con la vista corrispondente.

  • withId (R.id.my_view) restituisce un matcher di visualizzazione che corrisponderà alla visualizzazione (effettiva) con attributi id uguali a my_view .

  • withText ("Hello") restituisce anche un visualizzatore che corrisponderà alla vista (prevista) con attributi di testo uguali a Hello .

  • check è un metodo che accetta un argomento di tipo ViewAssertion e fa asserzioni usando passato nell'oggetto ViewAssertion .

  • corrisponde a (withText ("Hello")) restituisce un'asserzione di visualizzazione, che eseguirà ilreal jobdi affermare che sia la vista effettiva (trovata utilizzando withId ) sia la vista prevista (trovata utilizzando withText ) sono la stessa cosa.

Impariamo alcuni dei metodi forniti dal framework di test espresso per affermare gli oggetti di visualizzazione.

non esiste()

Restituisce un'asserzione di vista, che assicura che il matcher della vista non trovi alcuna vista corrispondente.

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

In questo caso, lo scenario di test garantisce che non sia presente alcuna vista con testo Hello.

fiammiferi ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e corrisponda alla vista abbinata dal match di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.textView_hello esista e corrisponda alla vista di destinazione con il testo Hello World!

isBottomAlignedWith ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia allineato in basso con il matcher di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia allineata in basso con la vista con id, R.id.target_view .

isCompletelyAbove ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia posizionato completamente sopra il match di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia posizionata completamente sopra la vista con id, R.id.target_view

isCompletelyBelow ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia posizionato completamente al di sotto del match di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia posizionata completamente sotto la vista con id, R.id.target_view .

isCompletelyLeftOf ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia posizionato completamente a sinistra del matcher di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia posizionata completamente a sinistra della vista con id, R.id.target_view

isCompletelyRightOf ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia posizionato completamente a destra del matcher di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia posizionata completamente a destra della vista con id, R.id.target_view.

isLeftAlignedWith ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia allineato a sinistra con il match di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia allineata a sinistra con la vista con id, R.id.target_view

isPartiallyAbove ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia posizionato parzialmente sopra il match di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia posizionata parzialmente sopra la vista con id, R.id.target_view

isPartiallyBelow ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia posizionato parzialmente al di sotto del match di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia posizionata parzialmente sotto la vista con id, R.id.target_view .

isPartiallyLeftOf ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia posizionato parzialmente a sinistra del match di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia posizionata parzialmente a sinistra della vista con id, R.id.target_view .

isPartiallyRightOf ()

Accetta un abbinatore della vista di destinazione e restituisce un'asserzione di vista, che garantisce che il corrispondente della vista (effettivo) esista e sia posizionato parzialmente a destra del corrispondente della vista di destinazione

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia posizionata parzialmente a destra della vista con id, R.id.target_view .

isRightAlignedWith ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia allineato a destra con il match di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista ed è allineata a destra con la vista con id, R.id.target_view .

isTopAlignedWith ()

Accetta un matcher di visualizzazione di destinazione e restituisce un'asserzione di visualizzazione, che garantisce che il matcher di visualizzazione (effettivo) esista e sia allineato in alto con il matcher di visualizzazione di destinazione.

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

Qui, il test case assicura che la vista con id, R.id.view esista e sia allineata in alto con la vista con id, R.id.target_view

noEllipsizedText ()

Restituisce un'asserzione di visualizzazione, che garantisce che la gerarchia di visualizzazione non contenga visualizzazioni di testo con ellissi o troncate.

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

noMultilineButtons ()

Restituisce un'asserzione di visualizzazione, che garantisce che la gerarchia di visualizzazione non contenga pulsanti su più righe.

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

noOverlaps ()

Restituisce un'asserzione di visualizzazione, che garantisce che l'oggetto discendente assegnabile a TextView o ImageView non si sovrapponga l'un l'altro. Ha un'altra opzione, che accetta un abbinamento della vista di destinazione e restituisce un'asserzione di vista, che garantisce che la vista discendente che corrisponde alla vista di destinazione non si sovrapponga.