Articulo de referencia

Jazmín (software)

{{cite web |url=http://pivotallabs.com/jasmine-1-0-released/ |title=Jasmine 1.0 Released |first=Davis W. |last=Frank |website=Pivotal Labs|access-date=11 February 2014 |archive-...

Jasmine es un marco de pruebas de código abierto para JavaScript . [ 4 ] Su objetivo es ejecutarse en cualquier plataforma compatible con JavaScript, no interferir con la aplicación ni con el IDE y tener una sintaxis fácil de leer. Está fuertemente influenciado por otros marcos de pruebas unitarias, como ScrewUnit, JSSpec, JSpec y RSpec . [ 5 ]

Historia

Los desarrolladores de Pivotal Labs para Jasmine desarrollaron previamente un marco de pruebas unitarias similar llamado JsUnit antes del desarrollo activo de Jasmine. [ 6 ]

Características

  • Admite pruebas asíncronas. [ 7 ]
  • Utiliza 'espías' para implementar dobles de prueba . [ 7 ]
  • Admite pruebas de código front-end a través de una extensión front-end de Jasmine llamada Jasmine-jQuery. [ 7 ]

Uso

Jasmine busca ser fácil de leer. Una prueba simple de "hola mundo" se ve como el código a continuación, donde describe() describe un conjunto de pruebas e it() es una especificación de prueba individual. El nombre "it()" sigue la idea del desarrollo dirigido 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.

función helloWorld () { return '¡Hola mundo!' ; }

y verifica que su resultado sea efectivamente el texto "¡Hola mundo!".

describe ( 'Hola mundo' , function () { it ( 'dice hola' , function () { expect ( helloWorld ()). toEqual ( '¡Hola mundo!' ); }); });

Jasmine proporciona un amplio conjunto de comparadores integrados. En el ejemplo anterior, `toEqual` comprueba la igualdad entre el valor devuelto por la función `helloWorld()` y la cadena `Hello world!`. Esto es similar a las aserciones utilizadas en otros marcos de pruebas. Los comparadores de Jasmine devuelven un valor booleano: `true` si la expectativa coincide (una forma de indicar que la prueba ha pasado) o `false` si la expectativa no coincide. [ 7 ] Una buena práctica es colocar una única expectativa en una especificación de prueba `it()` 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 condición toBeTruthy, toBeFalsy evalúan si algo es verdadero o falso y toBeDefined, toBeUndefined comprueban si algo está definido o no definido. Como su nombre indica, 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 comprueba 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. El comparador toContain se utiliza para verificar que un elemento, objeto o subcadena está contenido en una matriz, lista o cadena.

El comparador integrado especial toThrow se utiliza para verificar que se ha lanzado una excepción. [ 7 ] El siguiente código verifica que se lanza "Alguna excepción".

describe ( 'Se espera que se lance una excepción' , function () { it ( 'lanza alguna excepción' , function () { expect ( function (){ throw ( 'Alguna excepción' ); }). toThrow ( 'Alguna excepción' ); }); });

Jasmine cuenta con otras características, como comparadores personalizados, espías y compatibilidad con especificaciones asíncronas.

Corredores de prueba de Jasmine

Jasmine viene con un ejecutor de pruebas incorporado. Las pruebas de Jasmine pueden ejecutar pruebas de navegador incluyendo un archivo SpecRunner.html simple [ 9 ] o usándolo como un ejecutor de pruebas de línea de comandos compatible con varios lenguajes como Nodejs, Python, Ruby o (de la forma antigua) usando Karma, [ 10 ] una herramienta simple de ejecución de pruebas de JavaScript.

Comparación entre jazmín y moca

Mocha es otro popular framework de pruebas de Javascript. La comparación entre Jasmine y Mocha se muestra en la tabla a continuación. [ 11 ]

Beneficios

  • El objetivo de Jasmine es ser independiente del navegador, del framework, de la plataforma y del lenguaje. [ 12 ]
  • Además del desarrollo basado en el comportamiento, Jasmine también admite el desarrollo basado en pruebas . [ 12 ]

Véase también

Referencias

  1. Frank, Davis W. "Jasmine 1.0 Released" . Pivotal Labs . Archivado del original el 22 de febrero de 2014. Recuperado el 11 de febrero de 2014 .
  2. "Versión 6.3.0" . 6 de junio de 2026. Consultado el 7 de junio de 2026 .
  3. "jasmine/MIT.LICENSE" . GitHub . Consultado el 25 de abril de 2017 .
  4. "Inicio" . jasmine.github.io .
  5. "Fondo · jasmine/Jasmine Wiki" . GitHub .
  6. Página del proyecto JsUnit en GitHub
  7. ^ Ragonha , Paulo ( 2013 ) . Pruebas de JavaScript de jazmín . Publicación de paquetes. ISBN 978-1782167211.
  8. Hahn, Evan (2013). Pruebas de JavaScript con Jasmine . O'Reilly Media. ISBN 978-1449356378.
  9. "Un proyecto sencillo" . GitHub .
  10. "Karma Jasmine" . 16 de junio de 2022.
  11. «Jazmín vs Mocha» . Marco Fransen . Consultado el 13 de febrero de 2017 .
  12. 1 2 "Comparación: Jasmine vs Mocha vs QUnit | StackShare" . Consultado el 13 de febrero de 2017 .
  • Sitio web oficialEdita esto en Wikidata
  • Jasmine en GitHub