Anatomía de un test: cómo escribir pruebas prácticas en Gleam

Fuentes: Anatomy of a Test

El programador Jonathan descompone un test real escrito en Gleam para ilustrar buenas prácticas de testing más allá de la teoría y del ejemplo de juguete. El test elegido pertenece a un proyecto personal de marcador de enlaces: comprueba que llamar a store.start_job(conn, job) marca el trabajo como iniciado y lo elimina de la lista de pendientes.

El artículo recorre, sección por sección, las decisiones de diseño aplicadas al caso. En "Names and Places" defiende colocar cada prueba junto al archivo que evalúa —imposible en Gleam, así que replica la estructura de carpetas src/ en test/— y explica por qué prefiere nombres de tests en formato cadena (it("marks a job as running")) frente a identificadores con guiones bajos, que mezclan separadores de palabras y nombres de función. También recomienda redactar el nombre tras escribir el test y mantenerlo estable aunque el código cambie.

En "The Test Constructor" presenta la función with_test_conn, que crea una conexión SQLite en memoria con el esquema cargado, un reloj simulado y la conexión al store, además de encargarse del teardown. Argumenta que las pruebas rara vez necesitan la flexibilidad del constructor de producción, así que merece la pena un envoltorio que evite el boilerplate en cada test. Compara este enfoque con beforeEach y variables globales al estilo Jest —más piezas sueltas y más fragilidad— y critica los mocks de interacciones de base de datos, pues vuelven los tests "ficción completa". Defiende usar dependencias reales (aquí SQLite en memoria) para probar el sistema código + BD al completo, asumiendo el reto de mantener velocidad. El texto se interrumpe antes de abordar las siguientes secciones, pendientes de próximas entregas.