¿Qué es done en Jest?

done es un callback especial que Jest proporciona a los tests asincrónicos cuando no estás usando async/await o promesas directamente.

Se usa para decirle a Jest que debe esperar a que el test termine manualmente, en lugar de asumir que se completó automáticamente.

¿Por qué se usa done?

Porque Jest, por defecto, marca el test como terminado cuando el cuerpo de la función termina de ejecutarse. Pero si dentro del test hay código asincrónico (por ejemplo: setTimeout, callbacks, peticiones simuladas), Jest puede cerrar el test antes de que tu código realmente termine, y eso provoca falsos positivos o falsos negativos.

done() permite decirle a Jest: “no termines este test todavía, te aviso manualmente cuando haya terminado”.

Ejemplo clásico sin done (error común):
                    
                
Ejemplo correcto usando done:
                    
                

¿Qué pasa si olvidas el done()?

Jest espera indefinidamente hasta que se agote el tiempo de espera (timeout) y marca el test como fallido con error de timeout.

¿Qué pasa si haces done() antes del expect()?
                    
                

También se usa done para verificar errores asincrónicos

Si hay un error dentro de un código asincrónico, debes capturarlo y pasar el error a done(error) para que Jest lo detecte correctamente.

                    
                
Regresar al Menu
Sobre Nosotros
Aprende a programar en JavaScript y mejora tus habilidades de desarrollo web con nuestra página de programación. Tenemos tutoriales prácticos, consejos útiles y ejemplos de código para ayudarte a dominar las principales técnicas y conceptos de programación en JavaScript. Desde funciones basicas hasta el desarrollo de aplicaciones web complejas con Node.js y Angular, nuestra página lo cubre todo. ¡Visítanos ahora para empezar a construir tus habilidades de programación en JavaScript hoy mismo!
Tags
Suscríbete
Obtenga informacion de nuestro contenido directamente en su bandeja de entrada!
Continuar
© 2025 tutorialesjavascript.com . All rights reserved. Design with by www.waco.com.co