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);
Zur Übersicht

Mehr vom Devsquad...

Jan Sauer

Linking inside native iOS Apps

Jonathan Zbick

Slack Emojis erstellen