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.