Testavimo funkcijos ir metodai su Chai

 Tinkamų išimčių testavimo funkcijos

Norėdami patikrinti, ar nėra išimčių, galime naudoti throw teiginį, kurį pateikė Chai. Šis tvirtinimas leidžia mums nurodyti išimties tipą ir bet kokią papildomą informaciją, kurią norime patvirtinti. Įtraukdami šį tvirtinimą į savo bandomuosius atvejus, galime užtikrinti, kad mūsų funkcijos veiktų taip, kaip tikėtasi, ir tinkamai tvarkytų klaidų sąlygas.

Panagrinėkime pavyzdį, kai turime funkciją, padalijančią du skaičius. Norime užtikrinti, kad funkcija išmestų išimtį, kai dalija iš nulio. Galime parašyti bandomąjį atvejį naudodami Chai teiginį throw, kad patikrintume, ar funkcija teisingai išmeta a, DivideByZeroError kai dalija iš nulio.

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);  
  });  
});  

Aukščiau pateiktame pavyzdyje naudojame to.throw teiginį, kad patikrintume, ar divide funkcija išmeta a DivideByZeroError dalindama iš nulio. Teiginys yra apvyniotas funkcija, kad būtų galima užfiksuoti išimtį ir atlikti reikiamus patikrinimus.

Įtraukdami teisingo išimčių išmetimo testus galime užtikrinti, kad mūsų funkcijos tinkamai tvarkytų klaidų sąlygas ir pateiktų reikšmingą grįžtamąjį ryšį, kai atsiranda netikėtų situacijų. Tai padeda pagerinti bendrą mūsų kodo kokybę ir patikimumą.

Apibendrinant galima pasakyti, kad funkcijų, kurios daro išimtis, testavimas yra svarbus programinės įrangos testavimo aspektas. Remdamiesi Chai 's throw tvirtinimu, galime lengvai patikrinti, ar mūsų funkcijos prireikus padaro laukiamas išimtis. Įtraukę šiuos testus į savo testavimo strategiją, galime padidinti savo programų patikimumą ir suteikti geresnę vartotojo patirtį.

Trečiame serijos „Node.js, Mocha, ir Chai “ straipsnyje išnagrinėsime, kaip išbandyti funkcijas ir metodus naudojant Chai. Chai yra galinga tvirtinimo biblioteka, skirta JavaScript kodo reikšmėms ir rezultatams tikrinti.

 

Objektų metodų ir jų elgesio testavimas

Norėdami patikrinti objekto metodus, galime naudoti tvirtinimus, kuriuos pateikia testavimo sistemos, tokios kaip Mocha ir Chai. Šie teiginiai leidžia daryti tvirtinimus apie objektų savybes ir elgesį.

Panagrinėkime pavyzdį, kai turime objektą, vadinamą calculator sudėjimo, atimties, daugybos ir padalijimo metodais. Norime užtikrinti, kad šie metodai duotų teisingus rezultatus. Galime parašyti bandomuosius atvejus naudodami Chai teiginius, kad patikrintume šių metodų veikimą.

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);  
  });  
});  

Aukščiau pateiktame pavyzdyje naudojame Chai teiginį expect, kad patikrintume, ar objekto metodai calculator grąžina laukiamus rezultatus. Kiekvienas bandymo atvejis sutelkiamas į konkretų metodą ir patikrinama, ar jis grąžina teisingą išvestį tam tikrai įvesties atveju.

Vykdydami šiuos bandymo atvejus galime užtikrinti, kad objekto metodai calculator veiktų taip, kaip tikėtasi, ir pateikti tikslius rezultatus.

Be metodų grąžinimo reikšmių tikrinimo, mes taip pat galime naudoti tvirtinimus, kad patikrintume kitas objektų savybes ir elgesį. Chai pateikia platų teiginių spektrą, leidžiantį mums pateikti įvairius tvirtinimus apie objektus, pvz., tikrinti nuosavybės vertes, tikrinti metodų iškvietimus ir kt.

Kruopščiai išbandę objekto metodus galime užtikrinti jų teisingumą ir patikimumą, o tai prisideda prie bendros mūsų kodų bazės kokybės.