Jasmine (cadru de testare JavaScript)

Jasmine își propune să fie ușor de citit. Un simplu test hello world arată ca în codul de mai jos, unde describe() descrie o suită de teste, iar it() este o specificație individuală de test. Numele „it()” urmează ideea de dezvoltare bazată pe comportament și servește ca prim cuvânt în numele testului, care ar trebui să fie o propoziție completă. Utilizarea urmează o sintaxă similară cu cea din RSpec.

Codul de mai jos testează această funcție

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

și verifică dacă ieșirea sa este într-adevăr textul „Hello world!”.

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

Jasmine oferă un set bogat de potriviri încorporate. În exemplul de mai sus, toEqual verifică egalitatea dintre valoarea returnată de funcția helloWorld() și șirul de caractere „Hello world!”. Acesta este același lucru ca și aserțiunile utilizate în alte cadre de testare. Potrivitorii Jasmine returnează pur și simplu o valoare booleană: true dacă așteptarea se potrivește (o modalitate de a indica faptul că testul a trecut) sau false dacă așteptarea nu se potrivește. O bună practică este de a pune o singură așteptare într-o specificație de test it() individuală.

Alți potrivitori încorporați includ toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. Identity matcher toBe verifică dacă două lucruri sunt același obiect. Potrivitorii de condiții toBeTruthy, toBeFalsy evaluează dacă ceva este adevărat sau fals, iar toBeDefined, toBeUndefined verifică dacă ceva este definit sau nedefinit. După cum sugerează și numele, toBeNull verifică dacă ceva este nul, iar toBeNaN verifică dacă ceva nu este un număr (NaN). Comparatorul de precizie toBeCloseTo acceptă doi parametri și verifică dacă un număr este apropiat de primul parametru, având în vedere o anumită precizie zecimală indicată de cel de-al doilea parametru. Matcher toContain este utilizat pentru a verifica dacă un element, un obiect sau un subșir de caractere este conținut într-un array, o listă sau un șir de caractere.

Matcherul încorporat special toThrow este utilizat pentru a verifica dacă a fost lansată o excepție. Codul de mai jos verifică dacă a fost aruncată „Some exception”.

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

Jasmine are o serie de alte caracteristici, cum ar fi matcheri personalizați, spioni și suport pentru specificații asincrone.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *