Jasmine (JavaScript tesztelési keretrendszer)
Jasmine egy nyílt forráskódú JavaScript teszt keretrendszer.[2] Célja, hogy bármilyen JavaScript-kompatibilis platformon fusson. Könnyen integrálódjon más alkalmazásokhoz és IDE-hez. Valamint könnyen olvasható szintaxisa legyen. Más egységtesztelési keretrendszerek, például a ScrewUnit, JSSpec, JSpec és RSpec erősen befolyásolták.[3] TörténeteA Pivotal Labs for Jasmine fejlesztői korábban egy hasonló egységtesztelési keretrendszert fejlesztettek ki JsUnit néven. A Jasmine aktív fejlesztése előtt.[4] Jellemzők
HasználataA 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 description() egy teszt sorozatot í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 teszt név első szavaként szolgál. Melynek egy teljes mondatnak kell lennie. A használata az RSpec szintaxisához hasonló. Az alábbi kód ezt a funkciót teszteli function helloWorld() {
return 'Hello world!';
}
és ellenőrzi, hogy a kimenete valóban a "Hello world!" . describe('Hello world', function() {
it('says hello', function() {
expect(helloWorld()).toEqual('Hello world!');
});
});
A Jasmine beépített egyeztető (matcher) függvények gazdag készletét kínálja. A fenti példában a toEqual ellenőrzi a helloWorld() függvényből visszaadott értéket és a 'Hello world!' szöveget. Ez megegyezik más tesztelési keretrendszerekben használt állításokkal (assertions). A Jasmine egyeztető függvények logikai értéket adnak vissza: igaz, ha a várt eredmény egyezik (ez jelzi, hogy a teszt sikeres volt), vagy hamis, ha a várt eredmény nem egyezik. Egy jó gyakorlat, egyetlen elvárt eredmény megfogalmazása az egyéni it() teszt specifikációban. További beépített egyeztető (matcher) függvények: toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo.[6] A toBe identitásegyeztető ellenőrzi, hogy a két dolog ugyanaz az az objektum-e. A toBeTruthy, toBeFalsy feltételegyezők értékelik, hogy valami igaz vagy hamis. A toBeDefined, toBeUndefined ellenőrzi, hogy valami definiált-e vagy nem. Ahogy a neve is sugallja, a toBeNull ellenőrzi, hogy valami nulla-e. A toBeNaN pedig azt, hogy valami nem szám ( NaN ). A toBeCloseTo precíziós egyeztető két paramétert fogad el, és ellenőrzi, hogy egy szám közel van-e az első paraméterhez, adott tizedesjegy pontossággal, amint azt a második paraméter jelzi. A toContain segítségével ellenőrizhető, hogy egy elem, objektum vagy alkakarterlánc szerepel-e egy tömbben, listában vagy karakterláncban. A speciális beépített egyeztető(matcher) toThrow segítségével ellenőrizhető, hogy kivétel történt-e. Az alábbi kód ellenőrzi, hogy a rendszer „Valamilyen kivételt” dobott-e fel. 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, például egyedi matcher-ekkel, spies-okkal és aszinkron specifikációk támogatásával. Jasmine teszt futtatókA Jasmine beépített teszt futtatóval rendelkezik. A Jasmine tesztek böngésző teszteket futtathatnak egy egyszerű SpecRunner.html [7] fájl hozzáadásával. Vagy parancssori teszt futtatóként különböző nyelveket támogatnak, például Nodejs, Python, Ruby. Vagy (régi módon) a Karma használatával,[8] amely egy egyszerű JavaScript teszt futtató eszköz. Jasmine és Mocha összehasonlítása [9]A Mocha egy másik népszerű JavaScript tesztelési keretrendszer. A Jasmin és a Mocha összehasonlítását az alábbi táblázat tartalmazza.
Előnyök
Jegyzetek
További információkKapcsolódó szócikkek |