Jasmine Framework Tutorial: Yksikkötestaus esimerkin kanssa
⚡ Älykäs yhteenveto
Jasmine on käyttäytymislähtöinen JavaSkriptitestauskehys, joka suorittaa Node.js-yksikkötestejä ilman selainta tai DOM:ia käyttäen describe-lohkoja. Se määrittää ja odottaa matching-funktioita varmistamaan, että jokainen viety funktio toimii dokumentoidusti.
Mikä on JasmineJS?
Jasmine on avoimen lähdekoodin ja suosituin JavaSkriptikirjaston testauskehys minkä tahansa testaamiseen JavaKäsikirjoitussovellus. Jasmine noudattaa Behavior Driven Development (BDD) -menettelyä varmistaakseen, että jokainen rivi JavaSkriptilause on oikein yksikkötestattu.
Mihin Jasmine Frameworkia käytetään?
Testaus on avainasemassa missä tahansa sovelluksessa. Node.js-yksikkötestausta varten käytettävissä oleva testauskehys on nimeltään Jasmine. Vuoden 2000 alussa oli olemassa testauskehys JavaKäsikirjoitus sovelluksia nimeltä JsUnit. Later tämä kehys päivitettiin ja tunnetaan nyt nimellä Jasmine.
Jasmiini auttaa automatisoinnissa Yksikkötestaus, josta on tullut varsin keskeinen käytäntö kehitystyössäping ja nykyaikaisten verkkosovellusten käyttöönottoa.
Tässä Jasmine-opetusohjelmassa opit määrittämään ympäristösi Jasminella ja suorittamaan Jasmine-testejä ensimmäiselle Node.js-sovelluksellesi.
Jasmine Node.js-sovellusten testaamiseen
Jasmine on a Behavior Driven Development (BDD) testauskehys JavaKäsikirjoitus. Se tekee emme luottaa selaimiin, DOM:iin tai mihin tahansa JavaSkriptikehys. Siksi se sopii verkkosivustoille, Node.js projekteihin tai mihin tahansa, missä JavaSkripti voi ajaa. Aloittaaksesi Jasminen käytön, sinun on ensin ladattava ja asennettava tarvittavat Jasmine-moduulit.
Jasmine Test Environmentin määrittäminen
Seuraavaksi tässä Jasmine Node.js -opetusohjelmassa sinun on alustettava ympäristösi ja tarkastettava Jasminen määritystiedosto. Alla olevat vaiheet näyttävät, miten Jasmine asennetaan ympäristöösi.
Vaihe 1) Asenna NPM-moduulit
Sinun täytyy Asenna NPM jasmine-moduulia Jasmine-kehyksen käyttämiseksi Node-sovelluksesta. Asentaaksesi jasmine-node-moduulin, suorita alla oleva komento.
npm install jasmine-node
Versiohuomautus (2026): yllä oleva historiallinen komento toimii edelleen, mutta jasmine-solmu moduuli on ylläpitotilassa ja sisältää Jasmine 1.3:n, joten pidä se vain vanhoissa projekteissa. Uusi Node.js-työ asentaa ylläpidetyn Jasmine CLI kehittäjäriippuvuutena ja kutsuu sitä npx:n kautta:
npm install --save-dev jasmine npx jasmine init
Jasmine 6.x on nykyinen päälinja ja tukee Node.js 20:tä, 22:ta ja 24:ää, ja Node.js 24 on Active LTS -julkaisu vuonna 2026.
Vaihe 2) Alusta Jasmine Environment
Projektin alustaminen – Tällä tavoin Jasmine luo sinulle spec-hakemiston ja määritysjson-tiedoston. Spec-hakemistoon tallennetaan kaikki testitiedostosi. Näin Jasmine tietää, missä kaikki testisi ovat, ja voi sitten suorittaa ne vastaavasti. JSON tiedostoa käytetään Jasmineen liittyvien tiettyjen määritystietojen tallentamiseen.
Alustaaksesi Jasmine-ympäristön, suorita alla oleva komento
jasmine init
Vaihe 3) Tarkista määritystiedostosi.
Määritystiedosto tallennetaan spec/support-kansioon nimellä jasmine.json. Tämä tiedosto luettelee lähdetiedostot ja tekniset tiedostot, jotka haluat Jasmine Runnerin sisällyttävän.
Alla oleva kuvakaappaus näyttää tyypillisen esimerkin Jasminen jasmine.json-tiedostosta.
- Huomaa, että tekninen hakemisto on määritetty tässä. Kuten aiemmin todettiin, kun jasmine suoritetaan, se etsii kaikki testit tästä hakemistosta.
- Seuraava huomioitava asia on parametri spec_files – Tämä tarkoittaa, että luodut testitiedostot tulee liittää "spec"-avainsanalla.
Kokoonpanohuomautus: Jasmine 6.x:ssä sama tiedosto hyväksyy myös auttajia, jotka latautuvat kerran ennen jokaista spesifikaatiota, ja env lohkonpitoasetukset, kuten random ja stopSpecOnExpectationFailure. Oletusarvoinen spec_files glob on **/*[sS]pec.?(m)js, ja eri tiedosto voidaan välittää –konfiguraatio tai JASMINE_CONFIG_PATH muuttuja.
Seuraavaksi tässä Jasmine-kehysopetusohjelmassa opimme käyttämään Jasminea Node.js-sovellusten testaamiseen.
Kuinka käyttää Jasminea Node.js-sovellusten testaamiseen
Jotta voit käyttää Jasmine-yksikkötestausta Node.js-sovelluksissa, sinun on suoritettava sarja vaiheita.
Alla olevassa esimerkissämme määrittelemme moduulin, joka laskee yhteen kaksi testattavaa lukua. Sen jälkeen määrittelemme erillisen kooditiedoston testikoodilla ja testaamme sitten Add-funktion Jasminella.
Vaihe 1) Määritä koodi, joka on testattava. Aiomme määrittää funktion, joka lisää 2 numeroa ja palauttaa tuloksen. Tämä koodi kirjoitetaan tiedostoon nimeltä "Add.js".
Alla olevassa kuvakaappauksessa näkyy valmis Add.js-moduuli, ja sama koodi toistetaan tekstinä sen alla.
var exports=module.exports={}; exports.AddNumber=function(a,b) { return a+b; };
Code Selitys
- Vienti-avainsanaa käytetään varmistamaan, että muut tiedostot voivat todella käyttää tässä tiedostossa määritettyjä toimintoja.
- Tämän jälkeen määritämme funktion nimeltä "AddNumber". Tämä funktio on määritetty ottamaan 2 parametria, a ja b. Toiminto lisätään moduuliin "vientit", jotta toiminto on julkinen toiminto, jota muut sovellusmoduulit voivat käyttää.
- Viimeinkin saamme funktiomme palauttamaan parametrien lisäarvon.
Vaihe 2) Seuraavaksi meidän on määriteltävä Jasmine-testikoodi, jota käytetään Add.js-tiedostossa olevan "Add"-funktion testaamiseen. Alla oleva koodi tulee sijoittaa tiedostoon nimeltä add-spec.js.
HuomautuksiaSana 'spec' on lisättävä testitiedostoon, jotta Jasmine voi havaita sen.
Alla olevassa kuvakaappauksessa sama spesifikaatiotiedosto on avattu editorissa.
var app=require("../Add.js"); describe("Addition",function(){ it("The function should add 2 numbers",function() { var value=app.AddNumber(5,6); expect(value).toBe(11); }); });
Code Selitys
- Meidän on ensin sisällytettävä Add.js-tiedostomme, jotta voimme testata tämän tiedoston AddNumber-funktiota.
- Luomme nyt testimoduuliamme. Testimoduulin ensimmäinen osa on kuvata menetelmä, joka periaatteessa antaa nimen testillemme. Tässä tapauksessa testimme nimi on "Lisäys".
- Seuraava bitti on antaa kuvaus testillemme käyttämällä it-menetelmää.
- Kutsumme nyt AddNumber-metodia ja lähetämme kaksi parametria, 5 ja 6. Nämä välitetään AddNumber-metodille Add.js-tiedostossa. Paluuarvo tallennetaan sitten value-nimiseen muuttujaan.
- Viimeinen vaihe on vertailun eli varsinaisen testin tekeminen. Koska odotamme AddNumber-funktion palauttaman arvon olevan 11, määrittelemme tämän käyttämällä metodia expect(arvo).toBe(odotusarvo).
ulostulo
- Testin suorittamiseksi on suoritettava komento jasmine.
- Alla oleva kuvakaappaus näyttää, että jasmine-komennon suorittamisen jälkeen se havaitsee add-spec.js-nimisen testin ja suorittaa sen sen mukaisesti. Jos testissä on virheitä, ne näytetään sen mukaisesti.
Add-esimerkissä käytetään vain yhtä matcheria, mutta Jasmine toimittaa niitä kokonaisen sarjan. Alla olevassa taulukossa on lueteltu ne, jotka kattavat lähes kaikki kirjoittamasi väitteet.
Jasmine Matchers -tuotteita, joita käytät eniten
Matcher on vertailufunktio, joka seuraa expect()-funktiota. Ketjuta .not ennen mitä tahansa matcheria kääntääksesi sen, kuten expect(value).not.toBe(11)-funktiossa.
| matchers | Mitä se tarkistaa | Tyypillinen käyttö |
| olla | Tiukka identiteetti, sama vertailu kuin === | odottaa(arvo).olla(11) |
| to Equal | Objektien ja taulukoiden syvä tasa-arvo | odota(käyttäjä).toEqual({id: 1}) |
| sisältää | Jäsenyys taulukon tai merkkijonon sisällä | odota(tiedostot).toContain('lisää-spec.js') |
| olla määritelty | Arvo ei ole määrittelemätön | odota(sovellus.LisääNumber).määriteltäväksi() |
| Heittää | Kääritty funktio aiheuttaa virheen | odottaa(kutsuLisää).heittämään() |
| olla kutsuttu | Vakoojaa kutsuttiin paikalle ainakin kerran | odota(logger.write).toHaveBeenCalled() |
Kaksi tapaa pitävät virheet luettavina. Käytä toBe-muuttujaa vain primitiivien ja identtisten viittausten yhteydessä, koska kaksi samansisältöistä oliota eivät koskaan ole ===. Käytä toEqual-muuttujaa rakenteille ja lisää toHaveBeenCalledWith, kun argumenteilla on yhtä paljon merkitystä kuin itse kutsulla.
Asennus, purku ja vakoojat Jasminessa
Oikeat sviitit tarvitsevat jaetun tilan ja tuplatilat hitaille yhteistyökumppaneille. Jasmine toimittaa molemmat ilman lisäpaketteja.
- ennenJokaista ja jälkeenJokaisen suorita ennen ja jälkeen jokaisen spesifikaation describe-lohkon sisällä, joka on luonnollinen paikka kalusteiden uudelleenjärjestämiselle.
- ennen kaikkea ja jälkeen kaiken ajetaan kerran koko korttelin ajan, joten varaa ne kalliille töille, kuten yhteyden avaamiselle.
- spyOn(objekti, 'metodi') korvaa todellisen metodin jollakin tracking double; lisää .and.returnValue() hallitaksesi sen vastausta.
- jasmine.createSpy('nimi') muodostaa itsenäisen tuplaobjektin takaisinkutsulle, jolla ei ole objektia, johon se voisi liittyä.
- Asynkroniset tiedot voidaan julistaa asynkroniseksi ja odottaa, se voi palauttaa promise-arvon tai se voi hyväksyä valmis-kutsupyynnön, jota on kutsuttava tasan kerran.
Vakoojat nollautuvat erittelyjen välillä, joten testisarja ei koskaan vuoda epäonnistunutta metodia seuraavaan testiin. Tämä eristäminen saa epäonnistuneen erittelyn osoittamaan yhteen vikaan ketjun sijaan, mikä on sama kurinalaisuus, jota kuvataan kohdassa yksikkötestaus perusasiat.
Jasmine vs. Mokka vs. Jest
Jasmine on yksi kolmesta hallitsevasta viitekehyksestä JavaSkriptien testaus, ja valinta riippuu yleensä siitä, kuinka paljon johdotusta haluat omistaa.
| Aspect | Jasmiini | mokkakahvi | on |
| väittämiä | Rakennettu | Lisätty, yleensä Chai | Rakennettu |
| Vakoojat ja pilkkaajat | Rakennettu | Lisätty, yleensä Sinon | Rakennettu |
| Teloitus | Sarja | Sarja | Rinnakkain prosessien välillä |
| Snapshots | Ei | Ei | Kyllä |
| Yhteinen koti | Angular, pelkkä Node.js | Joustavat Node.js-pinot | React ja modernit paketoijat |
Poimia mokkakahvi kun haluat koota oman väittämä- ja pilkkapinosi, ja on kun rinnakkaisajot ovat tärkeämpiä kuin konfiguroinnin hallinta, kattavuus ja tilannekuvat. Jasmine on edelleen kevyin vaihtoehto, joka saapuu valmiina, minkä vuoksi se on edelleen yleinen automaatiotestaus sviittiä.




