Functies en methoden testen met Chai

 Functies testen voor het genereren van de juiste uitzonderingen

Om te testen op uitzonderingen, kunnen we de throw bewering van gebruiken Chai. Met deze bewering kunnen we het type uitzondering specificeren dat moet worden gegenereerd en eventuele aanvullende details die we willen valideren. Door deze bewering op te nemen in onze testcases, kunnen we ervoor zorgen dat onze functies zich gedragen zoals verwacht en foutcondities op de juiste manier afhandelen.

Laten we eens kijken naar een voorbeeld waarin we een functie hebben die twee getallen deelt. We willen ervoor zorgen dat de functie een uitzondering genereert bij het delen door nul. We kunnen een testcase schrijven met behulp van de bewering Chai van 's throw om te controleren of de functie correct een genereert DivideByZeroError bij het delen door nul.

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

In het bovenstaande voorbeeld gebruiken we de to.throw bewering om te verifiëren dat de divide functie een genereert DivideByZeroError bij deling door nul. De bewering is verpakt in een functie zodat deze de uitzondering kan opvangen en de nodige controles kan uitvoeren.

Door tests op te nemen voor het correct genereren van uitzonderingen, kunnen we ervoor zorgen dat onze functies foutcondities op de juiste manier afhandelen en zinvolle feedback geven wanneer zich onverwachte situaties voordoen. Dit helpt de algehele kwaliteit en betrouwbaarheid van onze code te verbeteren.

Concluderend is het testen van functies die uitzonderingen genereren een belangrijk aspect van het testen van software. Met de bewering Chai van ' throw kunnen we gemakkelijk verifiëren dat onze functies de verwachte uitzonderingen genereren wanneer dat nodig is. Door deze tests in onze teststrategie op te nemen, kunnen we de robuustheid van onze applicaties verbeteren en een betere gebruikerservaring bieden.

In het derde artikel van de serie "Node.js, Mocha, en Chai " zullen we onderzoeken hoe functies en methoden kunnen worden getest met behulp van Chai. Chai is een krachtige beweringenbibliotheek voor het testen van waarden en uitkomsten in JavaScript code.

 

Objectmethoden en hun gedrag testen

Om de methoden van een object te verifiëren, kunnen we beweringen gebruiken die worden geleverd door testkaders zoals Mocha en Chai. Deze beweringen stellen ons in staat om beweringen te doen over de eigenschappen en het gedrag van objecten.

Laten we een voorbeeld bekijken waarin we een object hebben dat wordt aangeroepen calculator met methoden voor optellen, aftrekken, vermenigvuldigen en delen. We willen ervoor zorgen dat deze methoden de juiste resultaten opleveren. We kunnen testgevallen schrijven met Chai de beweringen van 's om het gedrag van deze methoden te verifiëren.

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

In het bovenstaande voorbeeld gebruiken we de bewering Chai van 's expect om te verifiëren dat de methoden van het calculator object de verwachte resultaten opleveren. Elke testcase richt zich op een specifieke methode en controleert of deze de juiste uitvoer retourneert voor een bepaalde invoer.

Door deze testgevallen uit te voeren, kunnen we ervoor zorgen dat de methoden van het calculator object zich gedragen zoals verwacht en nauwkeurige resultaten opleveren.

Naast het controleren van de geretourneerde waarden van methoden, kunnen we asserties ook gebruiken om andere eigenschappen en gedrag van objecten te verifiëren. Chai biedt een breed scala aan beweringen waarmee we verschillende soorten beweringen over objecten kunnen doen, zoals het controleren van eigenschapswaarden, het verifiëren van methodeaanroepen en meer.

Door de methoden van een object grondig te testen, kunnen we ervoor zorgen dat ze correct en betrouwbaar zijn, wat bijdraagt ​​aan de algehele kwaliteit van onze codebase.