Jasmine es un marco de prueba de código abierto para JavaScript . [4] Su objetivo es ejecutarse en cualquier plataforma habilitada para JavaScript, no interferir en la aplicación ni en el IDE , y tener una sintaxis fácil de leer. Está muy influenciado por otros marcos de prueba unitarios, como ScrewUnit, JSSpec, JSpec y RSpec . [5]
Desarrollador (es) | Laboratorios pivotales |
---|---|
Versión inicial | 14 de septiembre de 2010 [1] |
Lanzamiento estable | 3.7.1 / 19 de marzo de 2021 [2] |
Repositorio | |
Escrito en | JavaScript |
Sistema operativo | Multiplataforma |
Tipo | Prueba de unidad |
Licencia | Licencia MIT [3] |
Sitio web | jazmín |
Historia
Los desarrolladores de Pivotal Labs para Jasmine desarrollaron previamente un marco de prueba unitario similar llamado JsUnit antes del desarrollo activo de Jasmine. [6]
Características
- Admite pruebas asincrónicas. [7]
- Hace uso de 'espías' para implementar dobles de prueba . [7]
- Admite las pruebas de código de front-end a través de una extensión de front-end de Jasmine llamada Jasmine-jQuery. [7]
Uso
Jasmine pretende ser fácil de leer. Una prueba simple de hola mundo se parece al código siguiente, donde describe () describe un conjunto de pruebas y () es una especificación de prueba individual. El nombre "it ()" sigue la idea de desarrollo impulsado por el comportamiento y sirve como la primera palabra en el nombre de la prueba, que debe ser una oración completa. El uso sigue una sintaxis similar a la de RSpec .
El siguiente código prueba esta función
function helloWorld () { return '¡Hola mundo!' ; }
y verifica que su salida sea efectivamente el texto "¡Hola mundo!".
describe ( 'Hola mundo' , function () { it ( 'dice hola' , function () { espera ( holaMundo ()). toEqual ( '¡Hola mundo!' ); }); });
Jasmine proporciona un rico conjunto de comparadores integrados. En el ejemplo anterior, toEqual verifica la igualdad entre el valor devuelto por la función helloWorld () y el '¡Hola mundo!' cuerda. Esto es lo mismo que las afirmaciones utilizadas en otros marcos de prueba. Los comparadores de Jasmine simplemente devuelven un valor booleano: verdadero si la expectativa coincide (una forma de indicar que la prueba ha pasado) o falso si la expectativa no coincide. [7] Una buena práctica es poner una única expectativa en una especificación de prueba de ti () individual.
Otros comparadores integrados incluyen toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. [8] El comparador de identidad toBe comprueba si dos cosas son el mismo objeto. Los comparadores de condiciones toBeTruthy, toBeFalsy evalúan si algo es verdadero o falso y toBeDefined, toBeUndefined comprueban si algo está definido o no definido. Como sugiere el nombre, toBeNull comprueba si algo es nulo y toBeNaN comprueba si algo no es un número ( NaN ). El comparador de precisión toBeCloseTo acepta dos parámetros y verifica si un número está cerca del primer parámetro, dada una cierta cantidad de precisión decimal como lo indica el segundo parámetro. Matcher toContain se utiliza para verificar que un elemento, objeto o subcadena está contenido en una matriz, lista o cadena.
El comparador especial incorporado toThrow se usa para verificar que se ha lanzado una excepción. [7] El código siguiente verifica que se lanza "Alguna excepción".
describe ( 'Espera lanzar una excepción' , function () { it ( 'lanza alguna excepción' , function () { espera ( función () { throw ( 'Alguna excepción' ); }). toThrow ( 'Alguna excepción' ) ; }); });
Jasmine tiene otras características, como comparadores personalizados, espías y compatibilidad con especificaciones asincrónicas.
Corredores de prueba de jazmín
Jasmine viene con un corredor de pruebas incorporado. Las pruebas de Jasmine pueden ejecutar pruebas de navegador al incluir un archivo SpecRunner.html [9] simple o al usarlo como un corredor de prueba de línea de comandos compatible con varios lenguajes como Nodejs, Python, Ruby o (antiguo) usando Karma, [10] una sencilla herramienta de ejecución de pruebas de JavaScript.
Comparación entre jazmín y moca [11]
Mocha es otro marco de prueba de Javascript popular. La comparación entre jazmín y moca se muestra en la siguiente tabla.
Jazmín | Moca |
---|---|
Jasmine viene con dobles de prueba mediante el uso de espías. | Mocha no viene con una biblioteca doble de prueba y generalmente usa una biblioteca externa como Sinon. |
Jasmine tiene una utilidad de línea de comandos para ejecutar pruebas. | Mocha tiene una utilidad de línea de comandos para ejecutar pruebas. |
Jasmine tiene afirmaciones integradas. | Mocha no tiene una biblioteca de afirmaciones y usa Chai para las afirmaciones. |
Beneficios
- El objetivo de Jasmine es ser independiente del navegador, el marco, la plataforma y el idioma. [12]
- Además del desarrollo impulsado por el comportamiento, Jasmine también admite el desarrollo impulsado por pruebas . [12]
Ver también
Referencias
- ^ Davis W. Frank. "Jasmine 1.0 lanzado" . Laboratorios pivotales . Consultado el 11 de febrero de 2014 .
- ^ "Lanzamientos · jazmín / jazmín" . github.com . Consultado el 13 de abril de 2021 .
- ^ "jazmín / LICENCIA MIT" . GitHub . Consultado el 25 de abril de 2017 .
- ^ https://jasmine.github.io/
- ^ https://github.com/pivotal/jasmine/wiki/Background
- ^ Página del proyecto de GitHub JsUnit
- ^ a b c d e Ragonha, Paulo (2013). Pruebas de JavaScript Jasmine . Packt Publishing. ISBN 978-1782167211.
- ^ Hahn, Evan (2013). Pruebas de JavaScript con Jasmine . O'Reilly Media. ISBN 978-1449356378.
- ^ "Un proyecto sencillo" .
- ^ "Karma Jasmine" .
- ^ "Jazmín contra Mocha" . Marco Franssen . Consultado el 13 de febrero de 2017 .
- ^ a b "Comparación: Jasmine vs Mocha vs QUnit | StackShare" . Consultado el 13 de febrero de 2017 .
enlaces externos
- Sitio web de Jasmine
- Jasmine en GitHub
- JSSpec
- JSpec
- Tornillo Unidad