Unit Testing 🧪👨🏽‍🔬👩🏻‍🔬⚗️

Las pruebas unitarias se encargan de validar la lógica de nuestros proyectos, a su vez las pruebas de widgets validan el correcto funcionamiento de nuestra experiencia UI.

Desde el desarrollo de una solución se puede facilitar o por el contrario dificultar las pruebas, por eso es muy importante que cuando estes desarrollando tengas presente todos los principios de programación 🧐. Por dar algunos ejemplos, las funciones debe respetar el principio de responsabilidad única (en lo posible ninguna función debe ser de más de 30 líneas de código), las variables de retorno deben tener un tipo específico, asignar llaves únicas a tus widgets, no quemes mensajes de error tenlos centralizados en un solo sitio, ten presente los escenarios de error no solo los exitosos, entre otros.

Lineamientos al desarrollarlos

Estructura AAA

Lo primero que he de contarte es que toda prueba unitaria debe seguir la estructura triple A (arrange, act, assert).

Pero, ¿Qué significa esto? 🧐

Arrange : Es la porción de código donde defines todos los elementos necesarios para tu prueba.

Act :  Es la porción de código donde ejecutas la prueba.

Assert : Es la porción de código donde compruebas que todo se esta comportando según lo esperado.

En definitiva esa es la estructura base de nuestros test🧪. Sin embargo quiero que tengas presente también lo siguiente para el mundo Flutter.

Referente al nombramiento y ubicación de nuestros test

Todas las pruebas unitarias deberán estar contenidos dentro la carpeta test/unit_test.

Todo archivo de pruebas debe seguir el mismo nombramiento (solo cambiando la parte final por _test) y ubicación que el archivo que desea probar por ejemplo  el archivo de prueba del helpers/get_bmi_value.dart  estará ubicado en la ruta test/unit_test/helpers/get_bmi_value_test.dart.

Referente al uso de group en nuestros test

En Flutter contamos con un funcionalidad genial, la cual se llama group. Esto nos permite agrupar nuestros test por grupos de pruebas, se define que debe existir uno por método probado.

Escenarios de Error

Generalmente en nuestros test solemos probar solo el escenario cuando todo anda bien 🥲, sin embargo es importan siempre probar los escenarios de error y de esa forma determinar que nuestra aplicación si este funcionando correctamente.

Widget Test 🧩🧪