Jest 13.0: Flow y REPL
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Hoy nos complace anunciar la próxima versión importante de Jest. Hemos realizado cambios significativos que beneficiarán tanto a ustedes como a toda la infraestructura de pruebas de JavaScript de Facebook. Lo más destacado es que añadimos tipos estáticos a todo el código de Jest durante un reciente hackathon de Jest en Facebook. Quince personas trabajaron día y noche para agregar tipos de Flow a Jest e implementar nuevas funcionalidades. Los tipos de Flow cumplen dos propósitos clave: Primero, creemos que el código se escribe para ser leído. La mayoría de las veces, el código se escribe una sola vez pero es leído por docenas de personas a lo largo de los años. Añadir tipos estáticos al proyecto ayuda a documentar el código y explica parte de la arquitectura de Jest. Segundo, los tipos estáticos facilitan el mantenimiento y nos permitirán refactorizar partes de Jest con mayor confianza, sin temor a romper funcionalidades.
El proyecto Flow ha evolucionado enormemente dentro de Facebook y ha sido adoptado con éxito en muchos de nuestros frameworks y en casi todo nuestro código de productos. La adopción puede paralelizarse increíblemente bien: puede hacerse archivo por archivo hasta que suficiente base de código esté bien tipada. Entonces, Flow proporciona un valor real y guía durante cambios importantes. Gracias a esto, se detectaron muchos casos límite y errores sutiles.
Con la ayuda de lerna, continuamos modularizando el proyecto Jest. Con solo un pequeño ajuste en la configuración, Flow y lerna ahora funcionan bien juntos. Dividir Jest en paquetes nos ayudó a repensar los límites de los módulos y nos permitió publicar paquetes útiles de forma independiente: Las herramientas CLI jest-runtime y jest-repl ahora permiten ejecutar scripts en un entorno aislado de Jest, lo que posibilita ejecutar y depurar tu aplicación desde la línea de comandos. Esto es especialmente útil para proyectos que usan la convención de módulos @providesModule de Facebook. ¡Para comenzar, simplemente instala jest-repl y ejecútalo en la misma carpeta donde normalmente corres tus pruebas! También publicamos el paquete jest-changed-files que detecta archivos modificados en control de versiones para git o hg, algo común en herramientas de desarrollo.
Características nuevas y mejoradas
-
Se agregó un complemento de notificación que muestra alertas al ejecutar pruebas con
--notify. -
Se añadió la opción de configuración
browserpara resolver correctamente paquetes npm con campo browser enpackage.jsonal escribir pruebas para aplicaciones cliente. -
Se mejoró el mensaje "no se encontraron pruebas", que ahora reporta qué pruebas se detectaron y cómo se filtraron.
-
Se agregó
jest.isMockFunction(jest.fn())para verificar funciones simuladas (mock functions). -
Se mejoró la presentación del reporte de pruebas y se añadió un resumen de fallos al ejecutar muchas pruebas.
-
Se añadió soporte para simular módulos virtuales mediante
jest.mock('Module', implementation, {virtual: true}). -
Se eliminó la carpeta
.haste_cache. Jest ahora usa la ubicación temporal preferida del sistema operativo. -
Se agregó la duración de pruebas individuales en modo detallado (verbose).
-
Se añadió la capacidad de grabar instantáneas (snapshots) en Jest. Publicaremos un artículo aparte sobre esta función pronto.
Finalmente, hemos recibido un rediseño completo del sitio web realizado por Matthew Johnston y añadimos documentación para usar Jest con webpack. ¡Felices pruebas con Jest!
