Funzjonijiet u Metodi ta 'ttestjar ma' Chai

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

Biex nittestjaw għal eċċezzjonijiet, nistgħu nużaw l- throwaffermazzjoni 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 throwl-affermazzjoni ta' Chai biex niċċekkjaw jekk il-funzjoni tarmix b'mod korrett a DivideByZeroErrormeta 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.throwaffermazzjoni biex nivverifikaw li l- dividefunzjoni tarmi a DivideByZeroErrormeta 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 ta 'Chai throw, nistgħu nivverifikaw faċilment 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, and Chai", se nesploraw kif nittestjaw il-funzjonijiet u l-metodi bl-użu ta 'Chai. Chai hija librerija ta' asserzjoni qawwija għall-ittestjar tal-valuri u r-riżultati fil-kodiċi JavaScript.

 

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 minn oqfsa ta' ttestjar 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ħ calculatorb'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 l-asserzjonijiet ta' Chai 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 expectl-affermazzjoni ta' Chai biex nivverifikaw li l-metodi tal- calculatoroġġ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- calculatoroġġ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 'affermazzjonijiet 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.