12.5.2021 |

Marble Tests For RxJS Observables

- Strich simuliert den Ablauf der Zeit, ein Strich entspricht einem Frame (10ms) emitiert keinen Wert

a - b Zeichen

| erfolgreicher Abschluss eines Observables

# Zeigt einen Fehler im Observable

^ einen Subscription-Punkt angeben

! gibt den Endpunkt der Subscription an

() mehrere Werte zusammen in der gleichen Zeiteinheit


cold: Beginnt nie zu subscriben, bevor sich jemand subscribed hat. (z.B. Aufgezeichnete Fernsehsendung)
hot: Sendet Ereignisse egal ob Subscriber vorhanden sind oder nicht. (z.B. Live Streaming)

cold(--a--b--|, { a: ‘Hello’, b: ‘World’ })

Sende "Hello" bei 30ms und "World" bei 60ms, complete bei 90ms.

hot(--^--a--b--|, { a: ‘Hello’, b: ‘World’ })

Subscription beginnt am Punkt des Carets, dann 'Hello' bei 30ms und 'World' bei 60ms ausgeben, komplett bei 90ms.

import { marbles } from 'rxjs-marbles/jest';

describe('Test RxJs', () => {
 it(
   'should make a basic test',
    marbles((m: Context) => {
      const source = m.cold('-x--y', { x: 10, y: 20 });
      const destination = source.pipe(map((number) => number * 2));

      m.expect(destination).toBeObservable('-a--b', { a: 20, b: 40 });
    })
  );
});
m.expect(destination).toBeObservable('-a--b', { a: 20, b: 40 });
Alternative:
m.expect(destination).toBeObservable('10ms a--b', { a: 20, b: 40 });
Zur Übersicht

Mehr vom Devsquad...

Jan Sauer

Share your iPhone or iPad Screen with every Meeting Tool

Adrian Görisch

JS Regex named groups

Wir freuen uns, Sie kennen zu lernen

Hat Sie unser Angebot überzeugt? Dann freuen wir uns, Sie kennen zu lernen. Kontaktieren Sie uns gerne für ein unverbindliches Erstgespräch.
newcubator GmbH
Freie-Vogel-Straße 369
44269 Dortmund
dortmund@newcubator.com
+49 231/586 873 80
newcubator GmbH
Bödekerstraße 22
30161 Hannover
hannover@newcubator.com
+49 511/957 313 00