describe, it i expect w testach JavaScript

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

W testach automatycznych JavaScript często spotyka się składnię opartą na funkcjach describe, it oraz expect. Występuje ona m.in. w frameworkach testowych takich jak Jest i Jasmine.

describe()

describe() służy do grupowania testów dotyczących jednej funkcji, klasy lub modułu.

describe('fun1', () => {
    // testy funkcji fun1
});

Nazwa w pierwszym argumencie opisuje, co jest testowane.

it()

it() definiuje pojedynczy przypadek testowy. Powinien sprawdzać jedno konkretne zachowanie programu.

it('zwraca liczbę dodatnią bez zmian', () => {
    const result = fun1(2);
    expect(result).toBe(2);
});

W tym przykładzie test sprawdza, czy funkcja fun1 dla argumentu dodatniego 2 zwraca 2.

expect() i toBe()

expect() rozpoczyna asercję, czyli sprawdzenie wyniku. Metoda toBe() porównuje wartość otrzymaną z oczekiwaną.

expect(result).toBe(2);

Oznacza to: „oczekuję, że result będzie równe 2”.

Typowy schemat testu

Dobry test jednostkowy ma zwykle trzy kroki:

  1. przygotowanie danych,
  2. wywołanie testowanej funkcji,
  3. sprawdzenie wyniku.
const result = fun1(2);
expect(result).toBe(2);

W pytaniu egzaminacyjnym funkcja zamienia liczby ujemne na dodatnie, a dodatnie pozostawia bez zmian. Dlatego poprawny test dla liczby dodatniej powinien oczekiwać tej samej dodatniej wartości.