Jasmine (JavaScript testing framework)

Jasmine pretende ser fácil de leer. Una simple prueba de hola mundo se parece al código de abajo, 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 frase completa. El uso sigue una sintaxis similar a la de RSpec.

El código siguiente prueba esta función

function helloWorld() { return 'Hello world!';}

y verifica que su salida es efectivamente el texto «¡Hola mundo!».

describe('Hello world', function() { it('says hello', function() { expect(helloWorld()).toEqual('Hello world!'); });});

Jasmine proporciona un rico conjunto de emparejadores 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 lo mismo que las aserciones utilizadas en otros marcos de pruebas. Los matchers de Jasmine simplemente 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. Una buena práctica es poner una sola expectativa en una especificación de prueba individual de it().

Otros emparejadores incorporados incluyen toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. 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 indefinido. 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 indicada por 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 especial incorporado toThrow se utiliza para verificar que se ha lanzado una excepción. El código siguiente verifica que se lanza «Alguna excepción».

describe('Expect to throw an exception', function() { it('throws some exception', function() { expect( function(){ throw('Some exception'); }).toThrow('Some exception'); });});

Jasmine tiene una serie de otras características, como matchers personalizados, espías, y soporte para especificaciones asíncronas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *