Jasmine (JavaScript testing framework)

Jasmine se snaží být přehledný. Jednoduchý test hello world vypadá jako kód níže, kde describe() popisuje sadu testů a it() je specifikace jednotlivých testů. Název „it()“ sleduje myšlenku vývoje řízeného chováním a slouží jako první slovo v názvu testu, který by měl být celou větou. Použití se řídí syntaxí podobnou syntaxi RSpec.

Následující kód testuje tuto funkci

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

a ověřuje, že jejím výstupem je skutečně text „Hello world!“.

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

Jasmine poskytuje bohatou sadu zabudovaných matcherů. Ve výše uvedeném příkladu funkce toEqual kontroluje rovnost mezi hodnotou vrácenou funkcí helloWorld() a řetězcem „Hello world!“. To je stejné jako u assertions používaných v jiných testovacích frameworcích. Srovnávače Jasmine jednoduše vracejí logickou hodnotu: true, pokud se očekávání shoduje (způsob, jak naznačit, že test prošel), nebo false, pokud se očekávání neshoduje. Dobrou praxí je vložit jediné očekávání do individuální specifikace testu it().

Další vestavěné matchery zahrnují toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. Matcher identity toBe kontroluje, zda jsou dvě věci stejným objektem. Podmínkové matchery toBeTruthy, toBeFalsy vyhodnocují, zda je něco pravda nebo nepravda, a toBeDefined, toBeUndefined kontrolují, zda je něco definováno nebo nedefinováno. Jak název napovídá, toBeNull kontroluje, zda je něco nulové, a toBeNaN kontroluje, zda něco není číslo (NaN). Precision matcher toBeCloseTo přijímá dva parametry a kontroluje, zda je číslo blízké prvnímu parametru s určitou desetinnou přesností, kterou udává druhý parametr. Matcher toContain slouží k ověření, zda je prvek, objekt nebo podřetězec obsažen v poli, seznamu nebo řetězci.

Speciální vestavěný matcher toThrow slouží k ověření, zda byla vyhozena výjimka. Níže uvedený kód ověřuje, že byla vyhozena „nějaká výjimka“.

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

Jasmine má řadu dalších funkcí, například vlastní matchery, špehy a podporu asynchronních specifikací.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *