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

Jasmine
Logo jasmine.svg
Utvikler (er) Pivotal Labs
Første utgivelse 14. september 2010 ; 11 år siden ( 2010-09-14 )
Stabil utgivelse
3.7.1 / 19. mars 2021 ; 6 måneder siden ( 2021-03-19 )
Oppbevaringssted
Skrevet inn JavaScript
Operativsystem Kryssplattform
Type Enhetstest
Tillatelse MIT -lisens
Nettsted jasmine .github .io Rediger dette på Wikidata

Jasmine er et open source- testramme for JavaScript . Den tar sikte på å kjøre på en hvilken som helst JavaScript-aktivert plattform, å ikke trenge seg inn i programmet eller IDE , og å ha lettlest syntaks. Det er sterkt påvirket av andre rammeverk for testing av enheter, for eksempel ScrewUnit, JSSpec, JSpec og RSpec .

Historie

Utviklerne ved Pivotal Labs for Jasmine utviklet tidligere et lignende rammeverk for enhetstesting kalt JsUnit før aktiv utvikling av Jasmine.

Funksjoner

  • Støtter asynkron testing.
  • Gjør bruk av "spioner" for å implementere testdobbelter .
  • Støtter testing av front-end kode gjennom en front-end forlengelse av Jasmine kalt Jasmine-jQuery.

Bruk

Jasmine har som mål å være lett å lese. En enkel hei -verdenstest ser ut som koden nedenfor, der beskriv () beskriver en serie tester, og den () er en individuell testspesifikasjon. Navnet "it ()" følger ideen om atferdsdrevet utvikling og fungerer som det første ordet i testnavnet, som skal være en fullstendig setning. Bruk følger syntaks som ligner på RSpec .

Koden nedenfor tester denne funksjonen

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

og bekrefter at utgangen faktisk er teksten "Hei verden!".

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

Jasmine tilbyr et rikt sett med innebygde matchers. I eksemplet ovenfor kontrollerer toEqual likheten mellom verdien som returneres fra helloWorld () -funksjonen og "Hei verden!" streng. Dette er det samme som påstander som brukes i andre testrammer. Jasmine -matchere returnerer ganske enkelt en boolsk verdi: sant hvis forventningen samsvarer (en måte å indikere at testen har bestått) eller usann hvis forventningen ikke stemmer overens. En god praksis er å sette en enkelt forventning i en individuell it () testspesifikasjon.

Andre innebygde matchere inkluderer toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. Identitetsmatcheren toBe sjekker om to ting er det samme objektet. Tilstanden matcher toBeTruthy, toBeFalsy evaluerer om noe er sant eller usant og toBeDefined, toBeUndefined sjekk om noe er definert eller udefinert. Som navnet antyder sjekker toBeNull om noe er null og toBeNaN sjekker om noe ikke er et tall ( NaN ). Precision matcher toBeCloseTo godtar to parametere og sjekker om et tall er i nærheten av den første parameteren, gitt en viss desimal presisjon som angitt av den andre parameteren. Matcher toContain brukes til å bekrefte at et element, objekt eller understreng er inneholdt i en matrise, liste eller streng.

Den spesielle innebygde matcheren toThrow brukes til å bekrefte at et unntak er kastet. Koden nedenfor bekrefter at "Noen unntak" er kastet.

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

Jasmine har en rekke andre funksjoner, for eksempel tilpassede matchere, spioner og støtte for asynkrone spesifikasjoner.

Jasmin testløpere

Jasmine kommer med en innebygd testløper. Jasmine -tester kan kjøre nettlesertester ved å inkludere en enkel SpecRunner.html -fil eller ved å bruke den som en kommandolinjetestløper som støttes for forskjellige språk som Nodejs, Python, Ruby eller (old way) ved å bruke Karma, et enkelt JavaScript -testløperverktøy .

Sammenligning mellom Jasmine og Mokka

Mokka er et annet populært Javascript -testerammeverk. Sammenligningen mellom Jasmine og Mocha er gitt i tabellen nedenfor.

Jasmine Mokka
Jasmine kommer med testdobbelter ved å bruke spioner. Mokka kommer ikke med et testdobbelt bibliotek, og bruker vanligvis et eksternt bibliotek som Sinon.
Jasmine har et kommandolinjeverktøy for å kjøre tester. Mocha har et kommandolinjeverktøy for å kjøre tester.
Jasmine har påstander bygget inn i det. Mocha har ikke et påstandsbibliotek og bruker Chai for påstander.

fordeler

  • Målet med Jasmine er å være nettleser, rammeverk, plattform og språkuavhengig.
  • I tillegg til atferdsdrevet utvikling, støtter Jasmine også testdrevet utvikling .

Se også

Referanser

Eksterne linker