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
Rahmi Tufanoglu

Mehr vom Devsquad...

Jan Sauer

Share your iPhone or iPad Screen with every Meeting Tool

Adrian Görisch

JS Regex named groups

Hallo, ich bin Jörg Herbst!

Ich bin der CEO von newcubator und freue mich über jede Nachricht!

* Pflichtfeld