Cargando



Pruebas de JavaScript con Jasmine

Existen muchas forma de realizar pruebas en el código desarrollado en distintos lenguajes de programación pero para JavaScript las opciones son bastante limitadas pero no inexistentes, allí es donde entra Jasmine, que no es más que un framework de pruebas de comportamiento, el mismo posee un sinfín de herramientas que nos permitirán probar el código de JavaScript.


jul 07 2013 18:12
jul 07 2013 18:12
Ahora bien, ya hemos visto de que se trata Jasmine ahora veamos como funciona.
  • Descargamos la última versión de Jasmine y la descomprimimos.
  • Ingresamos al directorio de Jasmine y ejecutamos SpecRunner.html y veremos lo siguiente:

jasmine-javascript.jpg


Este archivo ejecuta unas pruebas en un código de ejemplo, sí deseamos correr las prueba podemos refrescar el navegador y las mismas se ejecutarán.
Ahora veamos un ejemplo del uso de Jasmine:
  • Primero creamos una función simple que contenga una cadena como llamada de retorno.
function helloWorld() {
return "Hello world!";
}

Estamos bastante seguros que esto funciona ¿verdad? Pero probemos esto con Jasmine y veamos que opina de nuestro código.
  • Guardamos la función creada en un archivo que podemos llamar hello.js, abrimos SpecRunner.html para realizar la inclusión.
<!-- este codigo debe ir en algun lado del <head>... -->
<script type="text/javascript" src="src/hello.js"></script>
  • Ahora pongamos a Jasmine a trabajar, creamos un archivo que contenga el siguiente código:
describe("Hello world", function() {
it("says hello", function() {
expect(helloWorld()).toEqual("Hello world!");
});
});

Veamos que contiene esta porción de código:

Primero tenemos el describe, que usualmente define un componente de nuestra aplicación, puede ser una clase, función o quizá algo más. En este ejemplo hace referencia a nuestra función helloWorld().

Sigamos en el mismo código y tendremos el bloque de it(), esto es llamado una especificación. Es una función en Javascript que nos dice que se espera o que debería hacer nuestro componente. Por cada describe podemos tener cualquier cantidad de especificaciones.

En este caso estamos probando si la función helloWorld() retorna “Hello world!” y lo verificamos con el toEqual() que no es más que un matcher, esto básicamente nos dirá si el contenido de la cadena es igual con lo que se está probando.
  • Guardamos el código con el nombre hello.spec.js lo colocamos en el directorio donde están contenidos las especificaciones y lo incluimos en nuestro SpecRunner.html
<!— este codigo debe ir en algun lado del <head>... -->
<script type="text/javascript" src="spec/hello.spec.js"></script>

Finalmente corremos esta especificación en nuestro navegador y veremos una salida como la que tenemos a continuación:


jasmine-javascript-2.jpg


También podemos usar otro tipo de matcher, veamos:

describe("Hello world", function() {
it("says world", function() {
expect(helloWorld()).toContain("world");
});
});

En vez de esperar que el valor sea igual, esta vez esperamos que el contenido sea la palabra “world” sin importar el resto del contenido, siempre y cuando exista la palabra “world” en esta prueba Jasmine lo interpretará como correcto.
Sí nos vamos a nuestra función podemos cambiar lo que dice y colocar algo a diferente a “Hello World”, Jasmine verá esto como incorrecto porque no es lo que está esperando y esa es la razón principal por la cual queremos a Jasmine, para que nos diga cuando algo no es lo esperado y esto nos ayudará a que nuestro código sea limpio y sin errores.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X