Saltar al contenido principal

Jest 13.0: Flow y REPL

· 3 min de lectura
Traducción Beta No Oficial

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 browser para resolver correctamente paquetes npm con campo browser en package.json al 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!