Runner de pruebas de Node.js
- Node.js ahora incluye un runner de pruebas integrado
- Puedes escribir pruebas importando el módulo
node:test en los archivos de prueba
- Ejecutar una sola prueba:
node --test tests/math.test.js
- Detecta y ejecuta automáticamente los archivos de prueba
- Puedes verificar las pruebas usando el módulo
assert integrado
- Puedes agrupar y administrar pruebas relacionadas usando suites de prueba y hooks
Mocking nativo de Node.js
- Node.js ahora incluye funciones de mocking nativas
- Puedes usar directamente en Node.js capacidades de mocking que suelen ofrecer otros frameworks de prueba
- Puedes implementar mocking usando el método
mock del módulo node:test
Cobertura de pruebas nativa de Node.js
- La cobertura de pruebas ayuda a entender qué tanto del código fuente está cubierto por pruebas
- Desde Node.js 20, se ofrece cobertura de pruebas nativa
- Puedes generar datos de cobertura de pruebas usando la bandera
--experimental-coverage
- Los reportes de cobertura permiten identificar áreas de código que no han sido probadas
Modo watch de Node.js
- El modo watch detecta cambios en archivos en tiempo real y vuelve a ejecutar scripts automáticamente
- No se necesitan dependencias externas como Nodemon
- Puedes detectar cambios en archivos y ejecutar scripts automáticamente usando la bandera
--watch
Corepack de Node.js
- Corepack actúa como puente entre el proyecto y el gestor de paquetes
- Puedes especificar el gestor de paquetes que usará el proyecto y Corepack lo administra automáticamente
- Puedes activar Corepack con el comando
corepack enable
Cargador .env de Node.js
- Desde Node.js 20, se ofrece de forma nativa la carga de variables de entorno desde archivos .env
- Puedes cargar un archivo .env usando la bandera
--env-file
- Puedes cargar varios archivos .env para configurar distintos entornos
Soporte de import.meta en Node.js
- Node.js v20.11.0 y v21.2.0 agregan soporte para
import.meta.filename y import.meta.dirname
- Permite obtener con mayor facilidad la ruta del archivo y el nombre del directorio
Promesas nativas para temporizadores en Node.js
- Desde Node.js v15, se pueden usar temporizadores en forma de promesa
- Puedes usar
setTimeout y setInterval como promesas para escribir código asíncrono de forma más concisa
Módulo de permisos de Node.js
- Es una función experimental para controlar el acceso a recursos de las aplicaciones Node.js
- Puedes restringir el acceso al sistema de archivos, la red, variables de entorno y más usando la bandera
--experimental-permission
Módulo de políticas de Node.js
- Es una función de seguridad para evitar la carga de código malicioso
- Puedes especificar un archivo de políticas y controlar la carga de módulos usando la bandera
--experimental-policy
7 comentarios
No se menciona
node --run. Desde las versiones más recientes, es posible ejecutar scripts sin depender de NPM. El arranque es decenas de veces más rápido.Esta vez, mientras trabajaba en el proyecto tsboard, hice bastantes comparaciones con el runtime de Bun por aquí y por allá. Node.js realmente tiene muchísimas cosas buenas, pero todavía se echan de menos estas dos: (1) no es compatible con TypeScript y (2) la velocidad. Creo que también es realmente impresionante en aspectos como la compatibilidad y el hecho de que prácticamente no depende del hardware ni de los recursos disponibles.
Si están considerando TypeScript, la velocidad de ejecución y demás, prueben considerar también el runtime de Bun...!
Vaya~ hasta mencionan a Jest en el artículo original.
Probé migrar un proyecto pequeño de jest -> node.js, pero como el soporte para funciones de validación es muy limitado, no convence mucho :(
De verdad adoptan las últimas tendencias rapidísimo..
¡Y mocking nativo!