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 });
Standort Hannover
newcubator GmbH
Bödekerstraße 22
30161 Hannover
Standort Dortmund
newcubator GmbH
Westenhellweg 85-89
44137 Dortmund