Opbygning af en grundlæggende test ved hjælp af Mocha og Chai
For at bygge en grundlæggende test ved hjælp af Mocha og Chai kan du følge disse trin:
1. Installer Mocha og Chai: Brug npm(Node Package Manager) til at installere Mocha og Chai i dit Node.js-projekt. Kør følgende kommando i din projektmappe:
npm install mocha chai --save-dev
2. Opret en testfil: Opret en ny fil, for eksempel test.js
, og importer følgende erklæringer til brug Mocha og Chai:
const chai = require('chai');
const expect = chai.expect;
describe('Example Test Suite',() => {
it('should pass the test',() => {
expect(2 + 2).to.equal(4);
});
});
3. Kør testen: Åbn terminalen og kør kommandoen mocha
for at udføre testene. Hvis alt går glat, vil du se resultaterne vist i terminalen.
Denne grundlæggende test bruger Mocha og Chai til at kontrollere en simpel beregning. I eksemplet ovenfor tjekker vi, at resultatet af operationen 2 + 2
skal være lig med 4
. Hvis resultatet er korrekt, vil testen bestå.
Ved at tilføje describe
og it
blokere kan du bygge mere komplekse tests og kontrollere forskellige dele af din kildekode.
Bemærk, at du også kan bruge andre påstandsmetoder leveret af Chai, såsom assert
eller should
, til test. Den specifikke brug afhænger af dit valg, og hvordan du vil organisere din testkode.
Brug af påstande og forespørgsler til at verificere funktionsresultater
Når du bruger Mocha og Chai til test, kan du bruge påstande og forespørgsler til at kontrollere resultaterne af funktioner. Her er nogle eksempler på brug af påstande og forespørgsler til at kontrollere funktionsresultater:
1. Brug expect
påstanden og to.equal
forespørgslen til at kontrollere resultatet af en funktion, der returnerer en bestemt værdi:
const result = myFunction();
expect(result).to.equal(expectedValue);
2. Brug 'forvent'-påstanden og forespørgslen to.be.true
eller to.be.false
til at kontrollere resultatet af en funktion, der returnerer en boolsk værdi:
const result = myFunction();
expect(result).to.be.true; // or expect(result).to.be.false;
3. Brug "expect"-påstanden og to.be.null
or to.be.undefined-forespørgslen til at kontrollere resultatet af en funktion, der returnerer en null eller udefineret værdi:
const result = myFunction();
expect(result).to.be.null; // or expect(result).to.be.undefined;
4. Brug expect
påstanden og to.include
forespørgslen til at kontrollere, om en værdi er inkluderet i en matrix eller streng:
const result = myFunction();
expect(result).to.include(expectedValue);
5. Brug expect
påstanden og to.have.lengthOf
forespørgslen til at kontrollere længden af en matrix eller streng:
const result = myFunction();
expect(result).to.have.lengthOf(expectedLength);
Disse eksempler er blot nogle få af mange måder at bruge påstande og forespørgsler i Mocha og Chai til at kontrollere funktionsresultater. Du kan tilpasse og bruge de relevante påstande og forespørgsler baseret på dit projekts testbehov.
Oprettelse af vellykkede og mislykkede testcases
Når du skriver testcases med Mocha og Chai, er det vigtigt at dække både succes- og fiaskoscenarier. Her er eksempler på oprettelse af testcases for både succesfulde og fiaskoscenarier:
1. Vellykket testcase:
describe('myFunction',() => {
it('should return the expected result',() => {
// Arrange
const input = // provide the input for the function
const expected = // define the expected result
// Act
const result = myFunction(input);
// Assert
expect(result).to.equal(expected);
});
});
2. Fejltesttilfælde:
describe('myFunction',() => {
it('should throw an error when invalid input is provided',() => {
// Arrange
const invalidInput = // provide invalid input for the function
// Act and Assert
expect(() => myFunction(invalidInput)).to.throw(Error);
});
});
I det vellykkede testtilfælde definerer du input for funktionen og det forventede resultat. Derefter kalder du funktionen med inputtet og hævder, at resultatet matcher den forventede værdi.
I fejltesttilfældet giver du ugyldigt input til funktionen og hævder, at den giver en fejl. Dette sikrer, at funktionen håndterer ugyldige input eller fejltilstande korrekt.
Ved at dække både succes- og fiaskoscenarier i dine testcases kan du sikre dig, at din kode bliver testet grundigt og håndterer forskellige situationer korrekt.