Testiranje funkcij in metod z Chai

 Preizkušanje funkcij za vračanje pravilnih izjem

Za testiranje izjem lahko uporabimo throw trditev, ki jo ponuja Chai. Ta trditev nam omogoča, da določimo vrsto izjeme, ki naj bo vržena, in vse dodatne podrobnosti, ki jih želimo preveriti. Z vključitvijo te trditve v naše testne primere lahko zagotovimo, da se naše funkcije obnašajo po pričakovanjih in ustrezno obravnavajo pogoje napak.

Oglejmo si primer, kjer imamo funkcijo, ki deli dve števili. Želimo zagotoviti, da funkcija vrže izjemo pri deljenju z nič. Lahko napišemo testni primer z uporabo Chai trditve throw, da preverimo, ali funkcija pravilno vrže a DivideByZeroError pri deljenju z ničlo.

const { expect } = require('chai');  
  
function divide(a, b) {  
  if(b === 0) {  
    throw new Error('DivideByZeroError');  
  }  
  return a / b;  
}  
  
describe('divide',() => {  
  it('should throw DivideByZeroError when dividing by zero',() => {  
    expect(() => divide(10, 0)).to.throw('DivideByZeroError');  
  });  
  
  it('should return the correct result when dividing two numbers',() => {  
    expect(divide(10, 5)).to.equal(2);  
  });  
});  

V zgornjem primeru uporabimo trditev, to.throw da preverimo, ali divide funkcija vrže a DivideByZeroError pri deljenju z ničlo. Trditev je ovita v funkcijo, tako da lahko ujame izjemo in izvede potrebna preverjanja.

Z vključitvijo testov za pravilno vrženje izjem lahko zagotovimo, da naše funkcije ustrezno obravnavajo stanja napak in zagotovijo smiselne povratne informacije, ko pride do nepričakovanih situacij. To pomaga izboljšati splošno kakovost in zanesljivost naše kode.

Skratka, testiranje funkcij, ki ustvarjajo izjeme, je pomemben vidik testiranja programske opreme. S Chai trditvijo throw lahko preprosto preverimo, ali naše funkcije po potrebi vržejo pričakovane izjeme. Z vključitvijo teh testov v našo strategijo testiranja lahko povečamo robustnost naših aplikacij in zagotovimo boljšo uporabniško izkušnjo.

V tretjem članku serije "Node.js, Mocha in Chai " bomo raziskali, kako preizkusiti funkcije in metode z uporabo Chai. Chai je zmogljiva knjižnica trditev za testiranje vrednosti in rezultatov v JavaScript kodi.

 

Testiranje objektnih metod in njihovega vedenja

Za preverjanje metod objekta lahko uporabimo trditve, ki jih zagotavljajo ogrodja za testiranje, kot sta Mocha in Chai. Te trditve nam omogočajo, da trdimo o lastnostih in obnašanju predmetov.

Oglejmo si primer, kjer imamo predmet, ki se kliče calculator z metodami za seštevanje, odštevanje, množenje in deljenje. Želimo zagotoviti, da te metode vračajo pravilne rezultate. Za preverjanje obnašanja teh metod lahko napišemo testne primere z uporabo Chai trditev.

const { expect } = require('chai');  
  
const calculator = {  
  add:(a, b) => a + b,  
  subtract:(a, b) => a- b,  
  multiply:(a, b) => a * b,  
  divide:(a, b) => a / b,  
};  
  
describe('calculator',() => {  
  it('should return the correct sum when adding two numbers',() => {  
    expect(calculator.add(5, 3)).to.equal(8);  
  });  
  
  it('should return the correct difference when subtracting two numbers',() => {  
    expect(calculator.subtract(5, 3)).to.equal(2);  
  });  
  
  it('should return the correct product when multiplying two numbers',() => {  
    expect(calculator.multiply(5, 3)).to.equal(15);  
  });  
  
  it('should return the correct quotient when dividing two numbers',() => {  
    expect(calculator.divide(6, 3)).to.equal(2);  
  });  
});  

V zgornjem primeru uporabimo trditev, Chai da expect preverimo, ali metode objekta calculator vrnejo pričakovane rezultate. Vsak preskusni primer se osredotoča na določeno metodo in preverja, ali vrne pravilen izhod za dani vhod.

Z izvajanjem teh testnih primerov lahko zagotovimo, da se metode objekta calculator obnašajo po pričakovanjih in zagotavljajo natančne rezultate.

Poleg preverjanja vrnjenih vrednosti metod lahko uporabimo tudi trditve za preverjanje drugih lastnosti in obnašanja objektov. Chai ponuja širok nabor trditev, ki nam omogočajo izdelavo različnih vrst trditev o objektih, kot je preverjanje vrednosti lastnosti, preverjanje klicev metod in še več.

S temeljitim testiranjem metod objekta lahko zagotovimo njihovo pravilnost in zanesljivost, kar prispeva k splošni kakovosti naše kodne baze.