Testowanie funkcji i metod z Chai

 Testowanie funkcji do zgłaszania poprawnych wyjątków

Aby przetestować wyjątki, możemy użyć throw potwierdzenia dostarczonego przez Chai. Ta asercja pozwala nam określić typ wyjątku, który powinien zostać zgłoszony, oraz wszelkie dodatkowe szczegóły, które chcemy zweryfikować. Uwzględniając to stwierdzenie w naszych przypadkach testowych, możemy zapewnić, że nasze funkcje zachowują się zgodnie z oczekiwaniami i odpowiednio obsługują warunki błędów.

Rozważmy przykład, w którym mamy funkcję dzielącą dwie liczby. Chcemy mieć pewność, że funkcja zgłasza wyjątek podczas dzielenia przez zero. Możemy napisać przypadek testowy, używając Chai asercji, throw aby sprawdzić, czy funkcja poprawnie rzuca a DivideByZeroError podczas dzielenia przez 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);  
  });  
});  

W powyższym przykładzie używamy to.throw asercji, aby sprawdzić, czy divide funkcja zwraca a DivideByZeroError podczas dzielenia przez zero. Asercja jest opakowana w funkcję, aby mogła przechwycić wyjątek i wykonać niezbędne kontrole.

Uwzględniając testy prawidłowego zgłaszania wyjątków, możemy zapewnić, że nasze funkcje odpowiednio obsługują warunki błędów i dostarczają sensownych informacji zwrotnych w przypadku wystąpienia nieoczekiwanych sytuacji. Pomaga to poprawić ogólną jakość i niezawodność naszego kodu.

Podsumowując, testowanie funkcji zgłaszających wyjątki jest ważnym aspektem testowania oprogramowania. Dzięki Chai asercji throw możemy łatwo zweryfikować, czy nasze funkcje zgłaszają oczekiwane wyjątki, gdy jest to konieczne. Włączając te testy do naszej strategii testowania, możemy zwiększyć niezawodność naszych aplikacji i zapewnić lepsze wrażenia użytkownika.

W trzecim artykule z serii „Node.js, Mocha, i Chai ” przyjrzymy się, jak testować funkcje i metody przy użyciu platformy Chai. Chai to potężna biblioteka asercji do testowania wartości i wyników w JavaScript kodzie.

 

Testowanie metod obiektowych i ich zachowań

Aby zweryfikować metody obiektu, możemy użyć asercji dostarczonych przez frameworki testowe, takie jak Mocha i Chai. Twierdzenia te pozwalają nam formułować twierdzenia dotyczące właściwości i zachowania obiektów.

Rozważmy przykład, w którym mamy obiekt o nazwie calculator z metodami dodawania, odejmowania, mnożenia i dzielenia. Chcemy mieć pewność, że te metody zwracają poprawne wyniki. Możemy pisać przypadki testowe, używając Chai asercji, aby zweryfikować zachowanie tych metod.

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

W powyższym przykładzie używamy Chai potwierdzenia expect, aby sprawdzić, czy metody obiektu calculator zwracają oczekiwane wyniki. Każdy przypadek testowy koncentruje się na określonej metodzie i sprawdza, czy zwraca poprawne dane wyjściowe dla danych danych wejściowych.

Uruchamiając te przypadki testowe, możemy upewnić się, że metody obiektu calculator zachowują się zgodnie z oczekiwaniami i zapewniają dokładne wyniki.

Oprócz sprawdzania wartości zwracanych przez metody możemy również użyć asercji do weryfikacji innych właściwości i zachowania obiektów. Chai zapewnia szeroki zakres asercji, które pozwalają nam na dokonywanie różnego rodzaju asercji na obiektach, takich jak sprawdzanie wartości właściwości, weryfikowanie wywołań metod i nie tylko.

Dogłębnie testując metody obiektu, możemy zapewnić ich poprawność i niezawodność, co wpływa na ogólną jakość naszej bazy kodu.