Funcții de testare pentru a arunca excepțiile corecte
Pentru a testa excepții, putem folosi throw
afirmația oferită de Chai. Această afirmație ne permite să specificăm tipul de excepție care ar trebui să fie aruncată și orice detalii suplimentare pe care dorim să le validăm. Prin includerea acestei afirmații în cazurile noastre de testare, ne putem asigura că funcțiile noastre se comportă conform așteptărilor și gestionează condițiile de eroare în mod corespunzător.
Să luăm în considerare un exemplu în care avem o funcție care împarte două numere. Vrem să ne asigurăm că funcția aruncă o excepție la împărțirea la zero. Putem scrie un caz de testare folosind afirmația Chai lui throw
pentru a verifica dacă funcția aruncă corect a DivideByZeroError
la împărțirea la zero.
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);
});
});
În exemplul de mai sus, folosim to.throw
afirmația pentru a verifica dacă divide
funcția aruncă a DivideByZeroError
la împărțirea la zero. Afirmația este încapsulată într-o funcție astfel încât să poată prinde excepția și să efectueze verificările necesare.
Prin includerea de teste pentru aruncarea corectă a excepțiilor, ne putem asigura că funcțiile noastre gestionează condițiile de eroare în mod corespunzător și oferă feedback semnificativ atunci când apar situații neașteptate. Acest lucru ajută la îmbunătățirea calității generale și a fiabilității codului nostru.
În concluzie, testarea funcțiilor care generează excepții este un aspect important al testării software. Cu afirmația Chai lui throw
, putem verifica cu ușurință că funcțiile noastre aruncă excepțiile așteptate atunci când este necesar. Încorporând aceste teste în strategia noastră de testare, putem îmbunătăți robustețea aplicațiilor noastre și putem oferi o experiență mai bună pentru utilizator.
În cel de-al treilea articol din seria „Node.js, Mocha și Chai „, vom explora modul de testare a funcțiilor și metodelor folosind Chai. Chai este o bibliotecă de afirmații puternică pentru testarea valorilor și a rezultatelor în JavaScript cod.
Testarea metodelor obiectelor și a comportamentelor acestora
Pentru a verifica metodele unui obiect, putem folosi aserțiuni furnizate de cadre de testare precum Mocha și Chai. Aceste afirmații ne permit să facem afirmații despre proprietățile și comportamentul obiectelor.
Să luăm în considerare un exemplu în care avem un obiect numit calculator
cu metode de adunare, scădere, înmulțire și împărțire. Dorim să ne asigurăm că aceste metode returnează rezultatele corecte. Putem scrie cazuri de testare folosind Chai afirmațiile lui pentru a verifica comportamentul acestor metode.
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);
});
});
În exemplul de mai sus, folosim afirmația Chai lui expect
pentru a verifica dacă metodele obiectului calculator
returnează rezultatele așteptate. Fiecare caz de testare se concentrează pe o metodă specifică și verifică dacă returnează rezultatul corect pentru o anumită intrare.
Prin rularea acestor cazuri de testare, ne putem asigura că metodele obiectului calculator
se comportă conform așteptărilor și oferă rezultate precise.
Pe lângă verificarea valorilor returnate ale metodelor, putem folosi și aserțiuni pentru a verifica alte proprietăți și comportamentul obiectelor. Chai furnizează o gamă largă de aserțiuni care ne permit să facem diferite tipuri de aserțiuni asupra obiectelor, cum ar fi verificarea valorilor proprietăților, verificarea invocărilor de metode și multe altele.
Testând temeinic metodele unui obiect, putem asigura corectitudinea și fiabilitatea acestora, ceea ce contribuie la calitatea generală a bazei noastre de cod.