Jasmine (JavaScript tesztelési keretrendszer)

A Jasmine célja, hogy könnyen olvasható legyen. Egy egyszerű hello world teszt úgy néz ki, mint az alábbi kód, ahol a describe() egy tesztcsomagot ír le, az it() pedig egy egyedi teszt specifikáció. Az “it()” név a viselkedésvezérelt fejlesztés gondolatát követi, és a tesztnév első szavaként szolgál, amelynek egy teljes mondatot kell alkotnia. A használat az RSpec-hez hasonló szintaxist követ.

Az alábbi kód teszteli ezt a függvényt

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

és ellenőrzi, hogy a kimenete valóban a “Hello world!” szöveg.

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

A Jasmine a beépített matcherek gazdag készletét biztosítja. A fenti példában a toEqual ellenőrzi a helloWorld() függvény által visszaadott érték és a “Hello world!” karakterlánc közötti egyenlőséget. Ez megegyezik a más tesztelési keretrendszerekben használt állításokkal. A Jasmine matcherek egyszerűen egy Boolean értéket adnak vissza: true, ha az elvárás megegyezik (ez egy módja annak, hogy jelezze, hogy a teszt átment), vagy false, ha az elvárás nem egyezik. Jó gyakorlat, ha egyetlen elvárást egy egyedi it() tesztspecifikációban helyezünk el.

A többi beépített megfeleltető a toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. A toBe azonosság-egyeztető ellenőrzi, hogy két dolog ugyanaz-e az objektum. A toBeTruthy, toBeFalsy feltétel-illesztők azt értékelik, hogy valami igaz vagy hamis, a toBeDefined, toBeUndefined pedig azt, hogy valami definiált vagy nem definiált. Ahogy a neve is mutatja, a toBeNull azt ellenőrzi, hogy valami nulla-e, a toBeNaN pedig azt, hogy valami nem szám (NaN). A toBeCloseTo pontossági megfeleltető két paramétert fogad el, és ellenőrzi, hogy egy szám közel van-e az első paraméterhez, a második paraméter által megadott bizonyos tizedes pontossággal. A toContain matcher annak ellenőrzésére szolgál, hogy egy elem, objektum vagy részlánc szerepel-e egy tömbben, listában vagy karakterláncban.

A toThrow speciális beépített matcher annak ellenőrzésére szolgál, hogy egy kivétel el lett-e dobva. Az alábbi kód azt ellenőrzi, hogy “Valamilyen kivétel” került-e dobásra.

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

A Jasmine számos más funkcióval is rendelkezik, mint például az egyéni matcherek, a kémek és az aszinkron specifikációk támogatása.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük