10 herramientas de prueba confiables de JavaScript

0
74

La necesidad de probar el código JavaScript es evidente. ¿De qué otra forma evitar los errores y asegurarse de que las aplicaciones se ejecuten sin problemas en el navegador o en Node.js? Afortunadamente, los desarrolladores tienen una gran cantidad de opciones cuando se trata de las pruebas de JavaScript.

Los test runners y los marcos para pruebas unitarias, pruebas de integración y pruebas funcionales están disponibles para el ecosistema JavaScript, con cobertura para Node.js y navegadores, así como para los marcos Angular y React. A continuación, se presentan 10 de las muchas opciones notables que los desarrolladores de JavaScript tienen para ayudarles a probar sus aplicaciones.

AVA
AVA es un test runner para Node.js que ofrece una API concisa, un detallado informe de errores, y soporte para nuevas características de lenguaje y aislamiento de procesos. AVA es el más adecuado para probar módulos Node.js y aplicaciones de servidor, pero quizás no para probar aplicaciones de IU. Entre sus capacidades, AVA ofrece una función para marcar una prueba como una tarea pendiente. Cada archivo de prueba ejecutado es un proceso separado. Otros beneficios incluyen el minimalismo y la velocidad de AVA, la sintaxis de prueba simple y la capacidad de ejecutar pruebas al mismo tiempo. AVA también tiene soporte para funciones asincrónicas y observables -un observable es un tipo que se puede usar para modelar fuentes de datos basadas en push, como los eventos DOM.

Las instrucciones para instalar AVA se pueden encontrar en la página GitHub del proyecto.

Cucumber.js
La implementación de JavaScript de la herramienta de prueba Cucumber, Cucumber.js se ejecuta en versiones Node.js mantenidas y en navegadores web modernos. El proyecto Cucumber cita beneficios que incluyen comunicaciones en equipo y la capacidad de ejecutar pruebas automatizadas escritas en lenguaje «simple, lo que significa que cualquier persona en el equipo puede leerlas. Por lo tanto, la comunicación, la colaboración y la confianza se pueden mejorar. Cucumber.js incluye un archivo ejecutable para ejecutar sus suites de prueba (llamadas características), por lo que no funciona cuando se instala globalmente. (Se requiere Cucumber en los archivos de soporte y no se pueden requerir módulos instalados globalmente).

Las instrucciones para instalar Cucumber.js están disponibles en GitHub.

Enzyme
Enzyme es una utilidad de prueba para la librería React JavaScript UI. Su objetivo es facilitar la prueba del rendimiento de los componentes React. Los desarrolladores pueden manipular, atravesar y simular el tiempo de ejecución dado el resultado. La API de Enzyme imita la API de jQuery para la manipulación y el recorrido DOM. Enzyme no tiene opinión sobre el test runner o la librería de aserciones. Si los desarrolladores desean usar Enzyme con aseveraciones personalizadas y funciones de conveniencia para probar los componentes React, pueden considerar chai-enzyme con Mocha/Chai, jasmine-enzyme con Jasmine o jest-enzyme con Jest. Enzyme también se puede usar para probar los componentes React Native.

Las instrucciones para la instalación de Enzyme puede encontrarse en GitHub.

Karma
Karma es un test runner para JavaScript que permite la ejecución de código en múltiples navegadores. Los navegadores principales, incluidos los navegadores móviles, son compatibles. Los desarrolladores detrás del proyecto dicen que Karma ofrece un entorno donde los desarrolladores no tienen que programar muchas configuraciones, sino que pueden escribir código y obtener retroalimentación instantánea de las pruebas. Karma está diseñado para pruebas (unitarias) de bajo nivel. No es un marco de prueba o una librería de aserciones, Karma lanza un servidor HTTP y genera un archivo de test runner a partir del marco de prueba favorito del desarrollador. Se ofrecen plug-ins para marcos como Jasmine, Mocha y QUnit.

Las instrucciones para instalar Karma están disponibles en GitHub.

Jasmine
Jasmine se presenta como un marco «impulsado por el comportamiento para probar JavaScript. No depende de otros marcos de JavaScript y no necesita un DOM. Sus partidarios citan su sintaxis como que permite una escritura fácil de pruebas. Mantenido por Pivotal Labs, Jasmine es adecuado para probar sitios web, proyectos Node.js y cualquier otra cosa donde JavaScript se pueda ejecutar. Jasmine tiene la intención de facilitar las pruebas en una variedad de casos de uso y navegadores, y es independiente del marco de JavaScript, lo que permite a los desarrolladores probar el código de React o Angular o cualquier otra librería de JavaScript. Jasmine se esfuerza por obtener dependencias mínimas mientras se mantiene pequeña y mantenible.

Las instrucciones para instalar Jasmine y comenzar a usar Jasmine se pueden encontrar en GitHub.

Jest
Jest se presenta como una solución integral de pruebas de JavaScript que funciona de forma inmediata y sin configuración para la mayoría de los proyectos de JavaScript. Las pruebas tienen un estado global único y pueden ejecutarse en paralelo. Las pruebas previamente fallidas se ejecutan primero, con las ejecuciones reorganizadas en función de la longitud de los archivos de prueba. Solo funciona con tecnologías populares de JavaScript que incluyen Angular, Babel, Node.js, React y Vue. Las pruebas se pueden ejecutar para realizar un seguimiento de los objetos grandes, con capturas instantáneas junto a las pruebas o incrustadas en línea. En los archivos de prueba, Jest coloca métodos y objetos en el entorno global, sin necesidad de importarlos.

Las instrucciones para instalar Jest se pueden encontrar en GitHub.

Luna
Luna es un obstinado marco de prueba unitaria para JavaScript que no requiere configuración. Según la documentación del producto, los desarrolladores pueden hacer que sus primeras pruebas unitarias se comiencen a ejecutar en minutos. Los informes de cobertura de código se generan sin instalar ningún otro módulo. Las pruebas deben escribirse como módulos ES6, con pruebas que se ejecutan en el navegador de forma predeterminada. La simultaneidad es posible con grupos de prueba ejecutados en paralelo. Luna se inspiró parcialmente en las pruebas incorporadas disponibles para el idioma Go de Google. Luna no admite el transpiling, por lo que no funcionará con CoffeeScript o TypeScript. También carece de soporte para navegadores antiguos.

Las instrucciones para instalar Luna están disponibles en GitHub.

Mocha
Un marco de prueba rico en funciones que se ejecuta en Node.js y en el navegador, Mocha promete hacer que las pruebas de código asíncrono sean «simples y divertidas. Las pruebas se ejecutan en serie, lo que los partidarios sostienen que permite informes precisos y flexibles al mapear excepciones no detectadas en casos de prueba precisos. Para pruebas continuas, los desarrolladores pueden usar la herramienta Wallaby.js para habilitar la cobertura de código en tiempo real para Mocha con cualquier librería de aserciones. Mocha también se integra con los marcos de aplicaciones, como, por ejemplo, a través de Konacha, que permite a los desarrolladores usar Mocha para probar JavaScript en aplicaciones de Ruby on Rails. También están disponibles varios plug-ins de editor, como la extensión de barra lateral Mocha para Visual Studio Code.

Las instrucciones para instalar Mocha y la documentación de su gran cantidad de características están disponibles en el sitio web del proyecto.

Protractor
Protractor es un marco de prueba de extremo a extremo para Angular y su predecesor, AngularJS. Las pruebas se ejecutan contra aplicaciones en un navegador, con Proctractor interactuando con una aplicación tal como lo haría un usuario. Se admiten estrategias de localización específicas de Angular para probar elementos de Angular sin ninguna configuración. Una capacidad de espera automática permite a Protractor ejecutar el siguiente paso en una prueba en el momento en que una página web completa las pruebas pendientes. Protractor se creó sobre WebdriverJS, una implementación de JavaScript de la herramienta de automatización del navegador Selenium utilizada para las pruebas.

Las instrucciones para instalar Protractor se pueden encontrar en el sitio web de Protractor.

QUnit
QUnit es un marco de prueba unitaria de JavaScript utilizado por los proyectos JQuery, jQuery UI y jQuery Mobile. De hecho, QUnit fue desarrollado originalmente como parte de jQuery por John Resig, el inventor de jQuery. QUnit se presenta como rápido y fácil de usar, con una API obstinada pero delgada y extensible, y se puede usar para probar cualquier código genérico de JavaScript. Cuando una prueba o aserción falla, QUnit promete proporcionar retroalimentación lo más rápido posible, con detalles suficientes para resolver el problema. Los métodos de aserción en QUnit siguen la especificación de prueba unitaria CommonJS. QUnit admite navegadores respaldados por jQuery 3.x, incluidas las variantes de Chrome, Edge, Firefox, Internet Explorer y Safari.

Puede descargar e instalar QUnit desde el sitio web de QUnit o desde jQuery.cdn.

Paul Krill, InfoWorld.com