Jest en 2016
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
2016 fue un gran año para las pruebas de JavaScript con Jest. Durante los primeros seis meses del año, reescribimos Jest y construimos una base sólida para mejorar significativamente el rendimiento y la experiencia del desarrollador al probar código JavaScript. Tipamos todo el código base con Flow, creamos numerosas pruebas de integración para Jest mismo y adoptamos lerna para convertir Jest de un framework en una Plataforma de Pruebas de JavaScript sin Dolor.
El recién creado react-test-renderer finalmente permitió probar componentes de react-native. A través del preset jest-react-native (ahora integrado directamente en react-native), Jest ahora funciona sin configuración adicional para cualquier proyecto React y viene preconfigurado en create-react-app y react-native. Integramos componentes clave de Jest en el empaquetador de react-native y la nueva función de pruebas de instantánea desde entonces se ha utilizado fuera de Jest: se integró con React Storybook como "storyshots" y está siendo adoptada por otros ejecutores de pruebas como ava.
El proyecto pretty-format se reescribió con el rendimiento en mente para impulsar la función de instantáneas de Jest, se fusionó recientemente en el monorepositorio de Jest y también es útil en otros ejecutores de pruebas. Hoy Jest se centra más en recopilar diferentes ideas y soluciones para las pruebas que en una implementación específica de un framework de pruebas.
Quiero agradecer profundamente a todas las personas que contribuyeron a Jest este año, tanto de la comunidad de código abierto como de Facebook: Dmitrii Abramov, Cristian Carlesso, Dan Abramov, Daniel Lo Nigro, Maxim Derbin, Evan Scott, Forbes Lindesay, Keyan Zhang y más de 60 personas. También damos la bienvenida a Michał Pierzchała (@thymikee) como primer contribuidor externo oficial de Jest. Ha hecho un excelente trabajo gestionando los issues y PRs en el repositorio. Si quieres empezar a contribuir a Jest, tenemos varias buenas primeras tareas y siempre estamos felices de ayudar en nuestro canal de Discord.
repl.it con integración de Jest
Amjad Massad creó un contenedor de Jest para que ahora puedas probar Jest directamente en el navegador. Puedes usarlo desde ahora al crear issues en GitHub, lo que debería ayudar a solucionar problemas más rápidamente. Amjad y Haya están construyendo repl.it para democratizar la programación mediante herramientas y plataformas poderosas pero simples para educadores, estudiantes y desarrolladores. ¡También están contratando ingenieros talentosos!
Actualización de la comunidad
Nos sentimos profundamente honrados de que más de 100 empresas hayan adoptado Jest en los últimos seis meses. Compañías como Twitter, Pinterest, Paypal, nytimes, IBM (Watson), Spotify, eBay, SoundCloud, Intuit, FormidableLabs, Automattic, Trivago y Microsoft han migrado total o parcialmente a Jest para sus necesidades de pruebas de JavaScript. Muchas gracias por darle una oportunidad a este proyecto. También queremos agradecer a todos los que hablaron sobre Jest en conferencias y meetups, y a quienes escriben posts sobre su experiencia con Jest.
Esto es lo que ha pasado en la comunidad en los últimos dos meses:
-
Jason Bonta y Dmitrii Abramov redefinieron la "pirámide de pruebas" de la que hablamos mucho en Facebook.
-
jest-codemods ahora permite migrar sin dolor de Mocha, Tape y Ava a Jest.
-
El equipo de React anunció mejoras en el react-test-renderer en la versión 15.4.0.
-
Orta Therox creó una increíble integración de vscode-jest y donó el código de soporte para editores a Jest.
-
Pavithra Kodmad está documentando la adopción de Jest en Flipkart y comparte consejos para empezar.
-
Kent C. Dodds escribió sobre migrar a Jest en PayPal y Jason Brown también escribió sobre migrar a Jest.
-
Ben McCormick escribió sobre ahorrar tiempo con Jest.
-
Eric Clemmons escribió sobre snapshots e integración con storybook.
-
Edvin Erikson escribió sobre obtener salida Tap en Jest.
-
jest-html puede llevar la comparación de snapshots a tu navegador.
-
Hubo algunas interesantes conversaciones en hackernews sobre Jest.
-
La comunidad inició un gran debate sobre el futuro de enzyme.
-
Ruben Oostinga escribió sobre combinar chai y los matchers de Jest.
-
Emil Ong escribió sobre por qué "Hacer TDD en tu frontend parece inútil".
-
Nate Hunzaker escribió sobre pruebas end-to-end con Jest y Nightmare.
-
Usar Jest con Angular simplemente funciona según Matthieu Lux.
-
Está ocurriendo una fantástica conversación sobre el propósito de las snapshot testing.
-
Dmitrii hizo un nuevo vídeo musical con su banda de metal.
-
lazyspec puede ayudarte a crear smoke tests rápidamente si estás introduciendo pruebas en una base de código existente.
-
Patrick Stapfer realizó una charla relámpago sobre vim y Jest.
-
Mark Dalgleish comentó sobre el valor de las pruebas de instantáneas.
Nuevas funciones, cambios y correcciones en Jest 17 y 18
Jest se creó inicialmente hace más de cinco años y como un marco tan antiguo ha acumulado cierta deuda técnica. Por eso tendemos a realizar cambios disruptivos con más frecuencia de lo que podría parecer necesario: creemos que es importante reducir gradualmente la deuda técnica para garantizar que Jest como proyecto se mantenga sostenible a largo plazo. No anunciamos Jest 17 en una publicación de blog y si no lo has actualizado en el último mes, quizá te resulte útil el registro de cambios.
-
Disruptivo: Se eliminó
piten favor deitotestymockImplen favor dejest.fn()omockImplementation. -
Disruptivo: Se renombró
--jsonOutputFilea--outputFile. -
Disruptivo: Se actualizó
testRegexpara incluir archivostest.jsyspec.js. -
Disruptivo: Se reemplazó
scriptPreprocessorcon la nueva opcióntransform. -
Disruptivo: Ahora la función
testResultsProcessordebe devolver los resultados modificados. -
Potencialmente disruptivo: Ahora se resuelven correctamente
snapshotSerializers,setupFiles,transform,testRunnerytestResultsProcessorcon un algoritmo de resolución en lugar de usarpath.resolve. Esto significa principalmente que ya no se necesita<rootDir>para estas opciones. -
Añadido:
pretty-formatyjest-editor-supportse integraron en Jest. -
Añadido:
expect.any,expect.anything,expect.objectContaining,expect.arrayContaining,expect.stringMatching. -
Añadido:
--testResultsProcessorahora está disponible en la CLI. -
Añadido: Implementación de observación de archivos en
jest-haste-map. -
Añadido: El uso de Jest en modo observación se puede ocultar mediante
JEST_HIDE_USAGE. -
Añadido:
expect.assertions(number)garantiza que se realice una cantidad específica de aserciones en una prueba. -
Añadido: Función
.toMatchSnapshot(?string)para dar nombre a las instantáneas. -
Añadido: Comparadores
toMatchObject,toHaveProperty,toHaveLength. -
Añadido:
expect.extend. -
Añadido: Soporte para serializadores de instantáneas personalizados.
-
Añadido: Las diferencias grandes ahora se contraen por defecto en instantáneas y aserciones. Se añadió
--expand(o-e) para mostrar la diferencia completa. -
Añadido:
jest.resetAllMocksreemplaza ajest.clearAllMocks. -
Añadido:
--jsonahora incluye información sobre pruebas individuales dentro de un archivo. -
Corregido: Rechazos de promesas no manejados en
test.concurrent. -
Corregido:
babel-plugin-jest-hoistal usarjest.mockcon tres argumentos. -
Corregido: El global
JSONenjest-environment-nodeahora proviene del contexto vm en lugar del contexto padre. -
Corregido: Jest ya no imprime trazas de pila de babel.
-
Corregido: Los temporizadores falsos se reinician cuando se llama a
FakeTimers.useTimers(). -
Corregido: Las expresiones regulares se escapan correctamente en instantáneas.
-
Corregido: Mejorada la impresión formateada de objetos grandes.
-
Corregido:
NaN% Faileden notificaciones del sistema operativo al usar--notify. -
Corregido: La primera ejecución de tests sin tiempos en caché ahora usa procesos separados en lugar de ejecutarse en serie.
-
Corregido: Comparaciones de
Map/Set. -
Corregido:
test.concurrentahora funciona con--testNamePattern. -
Corregido: Mejoras en el matcher
.toContain. -
Corregido: Resolución adecuada de módulos con extensiones de plataforma en react-native.
-
Corregido: Los objetos globales integrados en
jest-environment-nodeahora funcionan correctamente. -
Corregido: Los objetos mock se crean en el contexto de la VM en lugar del contexto padre.
-
Corregido:
.babelrcahora es parte de la clave de caché de transformación enbabel-jest. -
Corregido: Análisis de docblocks con módulos haste.
-
Corregido: Finalización con código apropiado cuando no se alcanza el umbral de cobertura.
-
Corregido: Jest ahora limpia todo el historial de desplazamiento en modo watch.
-
Obsoleto:
jest-react-nativefue marcado como obsoleto y ahora redirige areact-native.
Planes para Jest en el primer semestre de 2017
Hace seis meses compartimos nuestros planes para Jest y nos complace haber ejecutado casi todos satisfactoriamente. Para los próximos seis meses, esto es lo que planeamos:
-
Retroalimentación instantánea: Integración con Nuclide y un modo watch mejorado y más rápido.
-
Mejor experiencia para desarrolladores: Nuevas APIs de mocking y aserciones mejoradas.
-
Mejor rendimiento y uso de memoria: Analizar Jest y ser más conscientes sobre la eficiencia.
-
Mejoras en snapshots: Modo de aprobación de snapshots, resaltado de sintaxis y APIs mejoradas para
react-test-renderer. -
Sitio web: Renovaremos el sitio web y documentación, añadiendo una chuleta de Jest.
No proporcionaremos plazos ni estimaciones para estas funcionalidades, y es posible que no lleguemos a implementarlas todas. Si deseas ayudar a hacerlas realidad, envíanos issues y pull requests con tus ideas y trabajemos juntos para mejorar Jest en 2017.
