Jasmine (JavaScript -testauskehys) - Jasmine (JavaScript testing framework)

Jasmiini
Logo jasmine.svg
Kehittäjä (t) Keskeiset laboratoriot
Ensimmäinen julkaisu 14. syyskuuta 2010 ; 11 vuotta sitten ( 14.9.2010 )
Vakaa julkaisu
3.7.1 / 19. maaliskuuta 2021 ; 6 kuukautta sitten ( 2021-03-19 )
Varasto
Kirjoitettu sisään JavaScript
Käyttöjärjestelmä Monialustainen
Tyyppi Yksikkötesti
Lisenssi MIT -lisenssi
Verkkosivusto jasmiini .github .io Muokkaa tätä Wikidatassa

Jasmine on avoimen lähdekoodin testauskehys JavaScriptille . Sen tavoitteena on toimia millä tahansa JavaScript-yhteensopivalla alustalla, olla tunkeutumatta sovellukseen tai IDE : hen ja sillä on helppolukuinen syntaksi. Siihen vaikuttavat voimakkaasti muut yksikkötestauskehykset, kuten ScrewUnit, JSSpec, JSpec ja RSpec .

Historia

Pivotal Labs for Jasmine -kehittäjät ovat kehittäneet samanlaisen JsUnit -yksikkötestauskehyksen ennen Jasminen aktiivista kehittämistä.

ominaisuudet

  • Tukee asynkronista testausta.
  • Hyödyntää "vakoojia" testin tuplaamiseen .
  • Tukee käyttöliittymäkoodin testausta Jasmine-käyttöliittymän Jasmine-jQuery kautta.

Käyttö

Jasmine pyrkii olemaan helppolukuinen. Yksinkertainen hello world -testi näyttää alla olevalta koodilta, jossa kuvaus () kuvaa testisarjaa ja se () on yksilöllinen testimääritys. Nimi "it ()" seuraa käyttäytymiseen perustuvan kehityksen ajatusta ja toimii testin nimen ensimmäisenä sanana, jonka pitäisi olla täydellinen lause. Käyttö noudattaa samanlaista syntaksia kuin RSpec .

Alla oleva koodi testaa tämän toiminnon

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

ja varmistaa, että sen tulos on todellakin teksti "Hello world!".

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

Jasmine tarjoaa laajan valikoiman sisäänrakennettuja sovittimia. Yllä olevassa esimerkissä toEqual tarkistaa helloWorld () -funktion palauttaman arvon ja "Hello world!" merkkijono. Tämä on sama kuin muissa testauskehyksissä käytetyt väitteet . Jasmine -sovittimet palauttavat yksinkertaisesti Boolen arvon: tosi, jos odotus täyttyy (tapa osoittaa, että testi on läpäissyt), tai epätosi, jos odotus ei täsmää. Hyvä käytäntö on asettaa yksittäinen odotus yksittäiselle it () -testimääritykselle.

Muita sisäänrakennettuja sovittimia ovat toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. Identiteetin sovittaja toBe tarkistaa, ovatko kaksi asiaa sama objekti. Ehtojen sovittimet toBeTruthy, toBeFalsy arvioivat, onko jokin asia totta vai epätosi, ja toBeDefined, toBeUndefined tarkistavat, onko jokin määritelty tai määrittelemätön. Kuten nimestä voi päätellä, toBeNull tarkistaa, onko jokin asia nolla, ja toBeNaN tarkistaa, onko jokin asia luku ( NaN ). Tarkkuuslaskuri toBeCloseTo hyväksyy kaksi parametria ja tarkistaa, onko numero lähellä ensimmäistä parametria, kun otetaan huomioon tietty desimaalitarkkuus, kuten toinen parametri osoittaa. Matcher toContain -toimintoa käytetään tarkistamaan, että elementti, objekti tai alimerkkijono sisältyy taulukkoon, luetteloon tai merkkijonoon.

Sisäänrakennettua toThrow-sovitinta käytetään varmistamaan, että poikkeus on heitetty. Alla oleva koodi vahvistaa, että "Jotkut poikkeukset" heitetään.

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

Jasmine sisältää useita muita ominaisuuksia, kuten mukautetut sovittimet, vakoojat ja tuki asynkronisille määrityksille.

Jasmine -testijuoksijat

Jasmine mukana tulee sisäänrakennettu testijuoksija. Jasmine -testit voivat suorittaa selaintestejä sisällyttämällä niihin yksinkertaisen SpecRunner.html -tiedoston tai käyttämällä sitä komentorivin testikäyttäjänä, jota tuetaan eri kielillä, kuten Nodejs, Python, Ruby tai (vanha tapa) käyttämällä Karmaa , joka on yksinkertainen JavaScript -testausohjelma .

Vertailu Jasmine ja Mocha

Mocha on toinen suosittu Javascript -testauskehys. Jasmiinin ja Mochan vertailu on esitetty alla olevassa taulukossa.

Jasmiini Mocha
Jasmine mukana tulee kaksinkertainen testi käyttämällä vakoojia. Mochan mukana ei tule kaksoiskokeita, ja se käyttää yleensä ulkoista kirjastoa, kuten Sinonia.
Jasmine sisältää komentoriviohjelman testien suorittamiseen. Mochalla on komentorivityökalu testien suorittamiseen.
Jasmine on sisällyttänyt siihen väitteitä. Mochalla ei ole väitekirjastoa ja hän käyttää Chaia väitteisiin.

Edut

  • Jasminen tavoitteena on olla riippumaton selaimesta, puitteista, alustasta ja kielistä.
  • Käyttäytymislähtöisen kehityksen lisäksi Jasmine tukee myös testipohjaista kehitystä .

Katso myös

Viitteet

Ulkoiset linkit