Aplicaciones Android

Redactar: ​​Lista / Detalles-Prueba, parte 2

En una publicación reciente sobre el estilo de Android, analizamos SlidingPanelLayoutEsto puede simplificar la implementación de la IU de lista / detalle. Maneja la lógica de mostrar un diseño lado a lado o un diseño de dos páginas de acuerdo con el tamaño de la pantalla. Actualmente, no existe un método equivalente en Jetpack Compose. En este artículo, veremos cómo Compose hace que esto sea relativamente fácil.

Antes de estudiar cómo crear una prueba ListDetailLayout Se emite la interfaz de usuario correcta en función de las capacidades de visualización del dispositivo dadas. Sin embargo, aún no hemos creado una prueba para el comportamiento de los dos modos de IU diferentes.

crear SplitLayout con TwoPageLayout Al ser componentes discretos, podemos probarlos individualmente. Esto es más fácil porque los mantenemos apátridas. El estado está en los parámetros de cada función componible. Podemos. Por tanto, se crean diferentes estados.

Herramientas comunes

Lo primero que queremos hacer es agregar más funciones útiles TestUtils:

Diseño dividido

SplitLayout Emitir una lista de lado a lado / IU de información detallada.Podemos probar este comportamiento por separado sin tener que usar su padre ListDetailLayoutEsto demuestra el valor de los componentes pequeños y concentrados.

Esto hará clic en cada elemento de la lista y afirmará que se muestran los detalles relevantes para cada elemento. Usamos nuevamente la función de utilidad que creamos anteriormente.

Los elementos de la lista y sus detalles tienen el mismo texto. Sin embargo, podemos determinar cuál es cuál comprobando su acción de clic. Si tiene una acción de clic, probablemente sea un elemento de lista. Si no es así, debe ser un elemento de información detallada.

Básicamente, se trata de ejecutar una prueba separada para cada elemento de la lista.

Existe un argumento válido de que esta prueba no está bien diseñada. Realmente realiza 10 operaciones de clic individuales y 100 afirmaciones en una sola función de prueba. Si ocurre una falla, será más difícil comprender las circunstancias exactas de la falla.Sin embargo, proporciona pruebas integrales SplitLayout.Dividirlo en pruebas individuales dará como resultado un conjunto de pruebas más grande. Dejaré que el lector decida si esta estrategia es beneficiosa para ellos.

Personalmente, puedo aceptar esta prueba porque siento que realmente verifica el comportamiento esperado de manera muy completa. Aunque le falta fluidez. Creo que la siguiente prueba es mucho más fluida.

Diseño de página dual

Finalmente, tenemos TwoPageLayout Tiene una pantalla separada para la lista y la interfaz de usuario de información detallada.

Aquí hay varias pruebas. Como antes, usamos funciones de utilidad para construir la interfaz de usuario bajo prueba. Cada prueba aborda un aspecto diferente del comportamiento esperado. Agregué algunos métodos simples de búsqueda de nodos para hacer que las pruebas individuales sean más legibles. Poder leer y comprender el código de prueba significa que el comportamiento esperado del componente bajo prueba es claro.

La primera lista de verificación se muestra inicialmente. La segunda verificación es que la lista ya no se muestra después de hacer clic en el elemento. La tercera verificación muestra que se muestran los detalles correctos. Finalmente, verificamos la IU de detalles de devolución para volver a la IU de la lista.

La prueba final es muy interesante porque muestra que podemos mezclar y combinar la prueba Compose con Espresso. Aquí usamos Espresso para activar el evento «retorno».

en conclusión

Es relativamente fácil probar la composición, pero aún necesitamos diseñarlos para lograr la capacidad de prueba. Mantenerlos apátridas a través de la promoción estatal ayuda enormemente a esto. Lo mismo ocurre con mantenerlos pequeños y enfocados.

La prueba de comportamiento de la espalda también se mencionó en el artículo anterior. ListDetalLayoutTest Verifique la lógica de navegación implementada en su interior.

Cuando podamos ejecutar las pruebas de Compose como pruebas unitarias, las pruebas se mejorarán aún más.En el pasado, tendía a omitir las pruebas de mis proyectos de código de muestra porque estaba hecho para Views lleva mucho tiempo. Hacer que se ejecuten en mi servidor CI también es un problema. Pero esto está cambiando, por lo que puede esperar ver mi código de muestra de Compose respaldado por pruebas de IU.

El código fuente de este artículo está disponible aquí.

© 2021, Mark Allison. reservados todos los derechos.

Copyright © 2021 Estilo de Android. reservados todos los derechos.

Para obtener información sobre cómo reutilizar o volver a publicar este trabajo, visite http://blog.stylingandroid.com/license-information.

LEER  Uso de la imagen YUV (YUV_420_888) en Android

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba