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.