7.7.2021

Jest Snack

Mathe

Mathematische Prüfungen mit .toBeCloseTo(), nicht mit .toBeEqual() durchführen.

Denn: (0.1 + 0.2) !== 0.3 (Medium-Artikel)

Dezimalzahlen werden binär dargestellt und sind daher meist nicht exakt (Ausnahme: .5).

Objekte prüfen

Objekte vergleichen mit .toEqual() oder .toMatchObject(), nicht mit .toBe().

.toBe() wird für den Vergleich primitiver Typen genutzt. Für Objektvergleiche kann es genutzt werden, um zu prüfen, ob es sich um dieselbe Instanz handelt.

Einzelne Tests in Datei durchlaufen

Wenn mindestens ein Test in einer spec-Datei mit it.only() gestartet wird, werden andere Tests ignoriert. Nur Tests mit it.only() werden dann durchlaufen.

Mocks

Ergebnisse von gemockten Funktionen können ausgelesen werden. (Jest Doku)

function forEach(items, callback) {
  for (let index = 0; index < items.length; index++) {
    callback(items[index]);
  }
}
const mockCallback = jest.fn(x => 42 + x);
forEach([0, 1], mockCallback);

// The mock function is called twice
expect(mockCallback.mock.calls.length).toBe(2);

// The first argument of the first call to the function was 0
expect(mockCallback.mock.calls[0][0]).toBe(0);

// The first argument of the second call to the function was 1
expect(mockCallback.mock.calls[1][0]).toBe(1);

// The return value of the first call to the function was 42
expect(mockCallback.mock.results[0].value).toBe(42);
Kerstin

Softwareentwicklerin

Zur Übersicht

Standort Hannover

newcubator GmbH
Bödekerstraße 22
30161 Hannover

Standort Dortmund

newcubator GmbH
Westenhellweg 85-89
44137 Dortmund