Ittestjar Funzjonijiet u Metodi bil Chai

 Funzjonijiet ta 'ttestjar biex jitfgħu l-eċċezzjonijiet korretti

Biex nittestjaw għal eċċezzjonijiet, nistgħu nużaw l- throw asserzjoni pprovduta minn Chai. Din l-affermazzjoni tippermettilna nispeċifikaw it-tip ta 'eċċezzjoni li għandha tintefa' u kwalunkwe dettalji addizzjonali li rridu nivvalidaw. Billi tinkludi din l-affermazzjoni fil-każijiet tat-test tagħna, nistgħu niżguraw li l-funzjonijiet tagħna jġibu ruħhom kif mistenni u jimmaniġġjaw il-kundizzjonijiet ta 'żball b'mod xieraq.

Ejja nikkunsidraw eżempju fejn għandna funzjoni li taqsam żewġ numri. Irridu niżguraw li l-funzjoni tarmi eċċezzjoni meta tiddividi b'żero. Nistgħu niktbu każ tat-test billi nużaw l-affermazzjoni Chai ta ' throw biex niċċekkjaw jekk il-funzjoni tarmix b'mod korrett a DivideByZeroError meta tiddividi b'żero.

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

Fl-eżempju ta 'hawn fuq, nużaw l- to.throw affermazzjoni biex nivverifikaw li l- divide funzjoni tarmi a DivideByZeroError meta tiddividi b'żero. L-affermazzjoni hija mgeżwra f'funzjoni sabiex tkun tista' taqbad l-eċċezzjoni u twettaq il-kontrolli meħtieġa.

Billi nkludu testijiet għat-tfigħ korrett ta' eċċezzjonijiet, nistgħu niżguraw li l-funzjonijiet tagħna jimmaniġġjaw il-kundizzjonijiet ta' żball b'mod xieraq u nipprovdu feedback sinifikanti meta jseħħu sitwazzjonijiet mhux mistennija. Dan jgħin biex itejjeb il-kwalità ġenerali u l-affidabbiltà tal-kodiċi tagħna.

Bħala konklużjoni, l-ittestjar tal-funzjonijiet li jarmu eċċezzjonijiet huwa aspett importanti tal-ittestjar tas-softwer. Bl- affermazzjoni Chai ta ' throw, nistgħu faċilment nivverifikaw li l-funzjonijiet tagħna jarmu l-eċċezzjonijiet mistennija meta meħtieġ. Billi ninkorporaw dawn it-testijiet fl-istrateġija tal-ittestjar tagħna, nistgħu ntejbu r-robustezza tal-applikazzjonijiet tagħna u nipprovdu esperjenza aħjar tal-utent.

Fit-tielet artiklu tas-serje "Node.js,, Mocha u Chai ", aħna se nesploraw kif nittestjaw il-funzjonijiet u l-metodi bl-użu ta ' Chai. Chai hija librerija ta 'affermazzjoni qawwija għall-ittestjar tal-valuri u r-riżultati fil JavaScript -kodiċi.

 

Ittestjar ta 'metodi ta' oġġetti u l-imġieba tagħhom

Biex nivverifikaw il-metodi ta 'oġġett, nistgħu nużaw asserzjonijiet ipprovduti mill-oqfsa tal-ittestjar bħal Mocha u Chai. Dawn l-asserzjonijiet jippermettulna nagħmlu asserzjonijiet dwar il-proprjetajiet u l-imġiba ta 'oġġetti.

Ejja nikkunsidraw eżempju fejn għandna oġġett imsejjaħ calculator b'metodi għal żieda, tnaqqis, multiplikazzjoni u diviżjoni. Irridu niżguraw li dawn il-metodi jirritornaw ir-riżultati korretti. Nistgħu niktbu każijiet tat-test billi nużaw Chai l-asserzjonijiet ta' biex nivverifikaw l-imġiba ta' dawn il-metodi.

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

Fl-eżempju ta 'hawn fuq, nużaw l-affermazzjoni Chai ta expect ' biex nivverifikaw li l-metodi tal- calculator oġġett jirritornaw ir-riżultati mistennija. Kull każ tat-test jiffoka fuq metodu speċifiku u jiċċekkja jekk jirritornax l-output korrett għal input partikolari.

Billi nħaddmu dawn il-każijiet tat-test, nistgħu niżguraw li l-metodi tal- calculator oġġett iġibu ruħhom kif mistenni u jipprovdu riżultati preċiżi.

Minbarra li niċċekkjaw il-valuri tar-ritorn tal-metodi, nistgħu wkoll nużaw asserzjonijiet biex nivverifikaw proprjetajiet u mġiba oħra ta 'oġġetti. Chai jipprovdi firxa wiesgħa ta’ asserzjonijiet li jippermettulna nagħmlu diversi tipi ta’ asserzjonijiet fuq oġġetti, bħall-iċċekkjar tal-valuri tal-proprjetà, il-verifika ta’ invokazzjonijiet ta’ metodu, u aktar.

Billi nittestjaw bir-reqqa l-metodi ta 'oġġett, nistgħu niżguraw il-korrettezza u l-affidabbiltà tagħhom, li tikkontribwixxi għall-kwalità ġenerali tal-kodiċi tagħna.