Jasmine (ramverk för JavaScript-testning)

Jasmine ska vara lätt att läsa. Ett enkelt hello world-test ser ut som koden nedan, där describe() beskriver en svit av tester och it() är en enskild testspecifikation. Namnet ”it()” följer idén om beteendestyrd utveckling och fungerar som det första ordet i testnamnet, som ska vara en fullständig mening. Användningen följer en syntax som liknar syntaxen i RSpec.

Koden nedan testar den här funktionen

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

och verifierar att dess utdata verkligen är texten ”Hello world!”.

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

Jasmine tillhandahåller en rik uppsättning av inbyggda matchers. I exemplet ovan kontrollerar toEqual likheten mellan det värde som returneras från funktionen helloWorld() och strängen ”Hello world!”. Detta är samma sak som assertioner som används i andra testramverk. Jasmine matchers returnerar helt enkelt ett boolskt värde: sant om förväntningen är matchad (ett sätt att indikera att testet har godkänts) eller falskt om förväntningen inte är matchad. En bra metod är att placera en enda förväntan i en individuell it()-testspecifikation.

Andra inbyggda matchers inkluderar toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. Identitetsmatcharen toBe kontrollerar om två saker är samma objekt. Villkorsmatcharna toBeTruthy, toBeFalsy utvärderar om något är sant eller falskt och toBeDefined, toBeUndefined kontrollerar om något är definierat eller odefinierat. Som namnet antyder kontrollerar toBeNull om något är noll och toBeNaN kontrollerar om något inte är ett tal (NaN). Precisionsmatcharen toBeCloseTo tar emot två parametrar och kontrollerar om ett tal ligger nära den första parametern, givet ett visst mått av decimalprecision som anges av den andra parametern. Matcher toContain används för att kontrollera att ett element, objekt eller en delsträng ingår i en array, lista eller sträng.

Den speciella inbyggda matchern toThrow används för att kontrollera att ett undantag har utlösts. Koden nedan verifierar att ”Some exception” kastas.

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

Jasmine har ett antal andra funktioner, till exempel anpassade matchers, spioner och stöd för asynkrona specifikationer.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *