Portafolio profesional

Construyendo un entorno académico de pruebas en Node.js: Jest vs Bun Test

Creé un gestor de tareas académico para enseñar pruebas de software, implementando los seis tipos fundamentales de pruebas con Jest y Bun Test. Acá te cuento cómo decidí la arquitectura y qué trade-offs enfrenté.

Artículo

# Construyendo un entorno académico para pruebas en Node.js ## El problema Como desarrollador backend, siempre me encontré con colegas que entendían la teoría de las pruebas pero no sabían aplicarla en proyectos reales. Veía equipos que escribían tests por obligación, no por convicción. El problema era claro: había una brecha entre saber qué son las pruebas unitarias y saber implementarlas correctamente en un entorno Node.js con Express, bases de datos y APIs REST. Los estudiantes y desarrolladores junior aprendían conceptos como "caja blanca" o "integración" de forma teórica, pero al enfrentarse a un proyecto real, no sabían por dónde empezar. ¿Cómo se prueba una ruta de Express que interactúa con SQLite? ¿Qué mockear y qué no? ¿Cómo estructurar los archivos de prueba? ## Por qué Jest + Bun Test Cuando empecé este proyecto, tenía dos opciones: usar solo Jest (el estándar de facto en el ecosistema JavaScript) o explorar alternativas más nuevas. Elegí usar ambos. ¿Por qué? Porque quería mostrar la realidad del desarrollo: a veces usás herramientas establecidas, a veces experimentás con lo nuevo. Jest me daba todo lo que necesitaba: mocking poderoso, cobertura de código, snapshots. Pero Bun Test, aunque más joven, ofrecía una velocidad de ejecución impresionante y una integración nativa con el runtime Bun. El enfoque tradicional sería usar solo Jest, pero en este caso educativo, mostrar ambas herramientas permitía comparar filosofías de testing. La configuración de Jest en `jest.config.js` fue clave: ```javascript export default { testEnvironment: 'node', transform: { '^.+\\.js

Portafolio profesional

Portafolio de Juan Camilo Albarracín

Soy Juan Camilo Albarracín, ingeniero de software especializado en desarrollo backend, APIs, microservicios e integraciones de inteligencia artificial.