Jasmine (rámec testování JavaScriptu) - Jasmine (JavaScript testing framework)
![]() | tento článek příliš spoléhá na Reference na primární zdroje.Září 2012) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
![]() | |
Vývojáři | Klíčové laboratoře |
---|---|
První vydání | 14. září 2010[1] |
Stabilní uvolnění | 3.6.0 / 24. července 2020[2] |
Úložiště | https://github.com/jasmine/jasmine |
Napsáno | JavaScript |
Operační systém | Cross-platform |
Typ | Test jednotky |
Licence | Licence MIT[3] |
webová stránka | https://jasmine.github.io/ |
Jasmín je open-source testovací rámec pro JavaScript.[4] Jeho cílem je běžet na jakékoli platformě s povoleným JavaScriptem, aby nevnikal do aplikace ani do IDE a mít snadno čitelnou syntaxi. Je silně ovlivněn jinými rámci pro testování jednotek, jako jsou ScrewUnit, JSSpec, JSpec a RSpec.[5]
Dějiny
Vývojáři v Pivotal Labs pro Jasmine dříve vyvinuli podobný rámec testování jednotek s názvem JsUnit před aktivním vývojem Jasmine.[6]
Funkce
- Podporuje asynchronní testování.[7]
- Při implementaci využívá „špiony“ test zdvojnásobí.[7]
- Podporuje testování front-end kódu prostřednictvím front-end rozšíření Jasmine s názvem Jasmine-jQuery.[7]
Používání
Jasmine si klade za cíl být snadno čitelná. Jednoduchý Ahoj světe test vypadá jako níže uvedený kód, kde description () popisuje sadu testů a jedná se () o specifikaci individuálního testu. Název „it ()“ odpovídá myšlence vývoj založený na chování a slouží jako první slovo v názvu testu, které by mělo být úplnou větou. Použití odpovídá syntaxi podobné syntaxi RSpec.
Níže uvedený kód testuje tuto funkci
funkce Ahoj světe() { vrátit se 'Ahoj světe!';}
a ověří, že jeho výstupem je skutečně text „Hello world!“.
popsat('Ahoj světe', funkce() { to('říká ahoj', funkce() { očekávat(Ahoj světe()).rovný('Ahoj světe!'); });});
Jasmine poskytuje bohatou sadu vestavěných automatů. Ve výše uvedeném příkladu toEqual kontroluje rovnost mezi hodnotou vrácenou z funkce helloWorld () a 'Hello world!' tětiva. To je stejné jako tvrzení používané v jiných testovacích rámcích. Jasmínové porovnávače jednoduše vrátí booleovskou hodnotu: true, pokud je očekávání shodné (způsob, jak označit, že test prošel), nebo false, pokud se očekávání neshoduje.[7] Dobrým postupem je vložit jedno očekávání do specifikace testu it () jednotlivce.
Mezi další integrované porovnávače patří toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo.[8] Identifikátor identity toBe zkontroluje, zda jsou dvě věci stejný objekt. Porovnávače podmínek toBeTruthy, toBeFalsy vyhodnotí, zda je něco pravdivé nebo nepravdivé, a toBeDefined, toBeUndefined zkontrolují, zda je něco definováno nebo nedefinováno. Jak název napovídá, toBeNull kontroluje, zda je něco null, a toBeNaN kontroluje, zda něco není číslo (NaN ). Přesný vyhledávač toBeCloseTo přijímá dva parametry a kontroluje, zda je číslo blízké prvnímu parametru, vzhledem k určité míře desítkové přesnosti, jak je označeno druhým parametrem. Matcher toContain se používá k ověření, že prvek, objekt nebo podřetězec je obsažen v poli, seznamu nebo řetězci.
Speciální integrovaný porovnávač ToThrow se používá k ověření, že byla vyvolána výjimka.[7] Níže uvedený kód ověřuje, že je vyvolána „Nějaká výjimka“.
popsat(„Očekávejte, že vyvoláte výjimku“, funkce() { to('hodí nějakou výjimku', funkce() { očekávat( funkce(){ házet(‚Nějaká výjimka '); }).hodit(‚Nějaká výjimka '); });});
Jasmine má řadu dalších funkcí, jako jsou vlastní srovnávače, špioni a podpora asynchronních specifikací.
Jasmínové testovací běžce
Jasmine přichází s vestavěným testovacím běžecem. Testy jasmínu mohou spouštět testy prohlížeče zahrnutím jednoduchého souboru SpecRunner.html[9] soubor nebo jej použít jako testovací běh příkazového řádku podporovaný pro různé jazyky, jako je Nodejs, Python, Ruby, nebo (starým způsobem) pomocí Karmy,[10] jednoduchý nástroj pro testování běhu JavaScriptu.
Srovnání mezi Jasmínou a Mochou[11]
Moka je další populární rámec pro testování Javascriptů. Srovnání mezi Jasmínou a Mochou je uvedeno v následující tabulce.
Jasmín | Moka |
---|---|
Jasmine přichází s testovacími čtyřhry pomocí špiónů. | Mocha nepřichází s testovací dvojitou knihovnou a obecně používá externí knihovnu, jako je Sinon. |
Jasmine má obslužný program příkazového řádku spustit testy. | Mocha má k provádění testů obslužný program příkazového řádku. |
Jasmine má v sobě zabudovaná tvrzení. | Mocha nemá knihovnu tvrzení a pro tvrzení používá Chai. |
Výhody
- Cílem Jasmine je být nezávislý na prohlížeči, rámci, platformě a jazyce.[12]
- Kromě vývoje založeného na chování Jasmine také podporuje testovaný vývoj.[12]
Viz také
Reference
- ^ Davis W. Frank. „Vydáno Jasmine 1.0“. Klíčové laboratoře. Citováno 11. února 2014.
- ^ „Zprávy“. Citováno 25. srpna 2020.
- ^ „jasmín / MIT.LICENCE“. GitHub. Citováno 25. dubna 2017.
- ^ https://jasmine.github.io/
- ^ https://github.com/pivotal/jasmine/wiki/Background
- ^ Stránka projektu GitHub JsUnit
- ^ A b C d E Ragonha, Paulo (2013). Testování jasmínového JavaScriptu. Packt Publishing. ISBN 978-1782167211.
- ^ Hahn, Evan (2013). Testování JavaScriptu s Jasmine. O'Reilly Media. ISBN 978-1449356378.
- ^ „Jednoduchý projekt“.
- ^ „Karma Jasmine“.
- ^ „Jasmine vs. Mocha“. Marco Franssen. Citováno 13. února 2017.
- ^ A b "Srovnání: Jasmine vs Mocha vs QUnit | StackShare". Citováno 13. února 2017.