Budowanie podstawowego testu przy użyciu Mocha i Chai
Aby zbudować podstawowy test za pomocą Mocha i Chai, możesz wykonać następujące kroki:
1. Zainstaluj Mocha i Chai: użyj npm(Node Package Manager) do zainstalowania Mocha iw Chai swoim projekcie Node.js. Uruchom następujące polecenie w katalogu projektu:
npm install mocha chai --save-dev
2. Utwórz plik testowy: Utwórz nowy plik, na przykład test.js
, i zaimportuj następujące deklaracje do użycia Mocha i Chai:
const chai = require('chai');
const expect = chai.expect;
describe('Example Test Suite',() => {
it('should pass the test',() => {
expect(2 + 2).to.equal(4);
});
});
3. Uruchom test: Otwórz terminal i uruchom polecenie, mocha
aby wykonać testy. Jeśli wszystko pójdzie gładko, w terminalu zobaczysz wyniki.
Ten podstawowy test wykorzystuje Mocha i Chai do sprawdzenia prostej kalkulacji. W powyższym przykładzie sprawdzamy, czy wynik operacji 2 + 2
powinien być równy 4
. Jeśli wynik jest prawidłowy, test zostanie zaliczony.
Dodając describe
i it
blokując, możesz budować bardziej złożone testy i sprawdzać różne części kodu źródłowego.
Pamiętaj, że do testowania możesz także użyć innych metod asercji Chai, takich jak assert
lub should
. Konkretne użycie zależy od Twojego wyboru i sposobu organizacji kodu testowego.
Używanie twierdzeń i zapytań do weryfikacji wyników funkcji
Podczas używania Mocha i Chai testowania można używać asercji i zapytań do sprawdzania wyników funkcji. Oto kilka przykładów wykorzystania twierdzeń i zapytań do sprawdzania wyników funkcji:
1. Użyj expect
asercji i to.equal
zapytania, aby sprawdzić wynik funkcji, która zwraca określoną wartość:
const result = myFunction();
expect(result).to.equal(expectedValue);
2. Użyj asercji `expect` i zapytania to.be.true
lub to.be.false
do sprawdzenia wyniku funkcji, która zwraca wartość logiczną:
const result = myFunction();
expect(result).to.be.true; // or expect(result).to.be.false;
3. Użyj asercji `expect` i to.be.null
zapytania or to.be.undefined aby sprawdzić wynik funkcji, która zwraca wartość null lub undefined:
const result = myFunction();
expect(result).to.be.null; // or expect(result).to.be.undefined;
4. Użyj expect
asercji i to.include
zapytania, aby sprawdzić, czy wartość jest zawarta w tablicy lub łańcuchu:
const result = myFunction();
expect(result).to.include(expectedValue);
5. Użyj expect
asercji i to.have.lengthOf
zapytania, aby sprawdzić długość tablicy lub łańcucha:
const result = myFunction();
expect(result).to.have.lengthOf(expectedLength);
Te przykłady to tylko kilka z wielu sposobów używania twierdzeń i zapytań w Mocha celu Chai sprawdzania wyników funkcji. Możesz dostosować i używać odpowiednich twierdzeń i zapytań w oparciu o potrzeby testowania projektu.
Tworzenie udanych i nieudanych przypadków testowych
Podczas pisania przypadków testowych za pomocą Mocha i Chai ważne jest uwzględnienie zarówno scenariuszy pomyślnych, jak i niepowodzeń. Oto przykłady tworzenia przypadków testowych zarówno dla pomyślnego, jak i niepomyślnego scenariusza:
1. Udany przypadek testowy:
describe('myFunction',() => {
it('should return the expected result',() => {
// Arrange
const input = // provide the input for the function
const expected = // define the expected result
// Act
const result = myFunction(input);
// Assert
expect(result).to.equal(expected);
});
});
2. Przypadek testowy awarii:
describe('myFunction',() => {
it('should throw an error when invalid input is provided',() => {
// Arrange
const invalidInput = // provide invalid input for the function
// Act and Assert
expect(() => myFunction(invalidInput)).to.throw(Error);
});
});
W pomyślnym przypadku testowym definiujesz dane wejściowe dla funkcji i oczekiwany wynik. Następnie wywołujesz funkcję z danymi wejściowymi i potwierdzasz, że wynik jest zgodny z oczekiwaną wartością.
W przypadku testu awarii podajesz nieprawidłowe dane wejściowe do funkcji i twierdzisz, że zgłasza błąd. Zapewnia to, że funkcja prawidłowo obsługuje nieprawidłowe warunki wejściowe lub błędy.
Uwzględniając zarówno pomyślne, jak i niepowodzenia scenariuszy w przypadkach testowych, możesz upewnić się, że Twój kod jest dokładnie testowany i odpowiednio obsługuje różne sytuacje.