unit tutorial test support studio library unit-testing testing junit4 android-espresso

unit testing - tutorial - Espresso-withEfectiveVisibility vs isDisplayed



test ui android (1)

Según la documentación.

Devuelve un coincidente que coincide con {@link View} s que tienen una visibilidad "efectiva" establecida en el valor dado. La visibilidad efectiva tiene en cuenta no solo el valor de visibilidad de la vista, sino también el de sus antepasados. En el caso de View.VISIBLE, esto significa que la vista y todos sus ancestros tienen visibilidad = VISIBLE. En el caso de GONE e INVISIBLE, ocurre lo contrario: cualquier padre GONE o INVISIBLE hará que todos sus hijos tengan una visibilidad efectiva.

Nota:

Contrariamente a lo que puede implicar el nombre, la visibilidad de la vista no se traduce directamente en si la vista se muestra en la pantalla (use isDisplayed ()) Por ejemplo, la vista y todos sus antepasados ​​pueden tener visibilidad = VISIBLE, pero es posible que la vista deba desplazarse para ser realmente visible para el usuario. A menos que esté apuntando específicamente el valor de visibilidad con su prueba, use isDisplayed.

Por lo tanto, si se usa para verificar si una vista es visible, se usa IsDisplayed () pero para otra verificación en caso de que sea invisible y se haya usado con EfectivaVisibilidad

¿Cuál es la diferencia entre isDisplayed y withEffectiveVisibility ?

onView(withText("Much Dagger")).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))); onView(withText("Much Dagger")).check(matches(ViewMatchers.isDisplayed());