Es gibt ein Kapitel ist auf RxJS Ketten in den RxJS 4 Dokumentation zu testen, aber die Grundsätze gelten für RxJS 5 auch: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/testing.md
Wenn Sie Komponententest RxJS benutzerdefinierte Betreiber oder Betreiber Ketten gibt es offizielle Dokumentation: https://github.com/ReactiveX/rxjs/blob/master/doc/writing-marble-tests.md (In diesem Dokument erfahren Sie jedoch nicht, wo Sie dort enthaltene Funktionen in Ihren eigenen Code importieren können).
Schauen Sie sich auch an, wie RxJS selbst getestet wird. Zum Beispiel testing map()
operator (übrigens sind dies mocha
Tests). Beachten Sie, wie heiße und kalte Observable mit dieser kurzen Notation cold('--1--2--3--|')
gemacht und dann mit der erwarteten '--x--y--z--|'
unter Verwendung expectObservable
that comes from TestScheduler verglichen werden.
Wenn Sie wollte auch die Kurzschreibweise verwenden, um mit cold(...)
, hot(...)
und andere müssten Sie den Quellcode packen, kompilieren es mit npm run build_test
und verwenden dann die gleichen Optionen für mocha
wie das Original. See package.json
und die Standardoptionen für mocha
in default.opts
. Mir ist momentan keine einfachere Lösung bekannt.
Die kurze Notation macht die Dinge einfacher und lesbarer, aber Sie brauchen sie nicht. Sie können die regulären Test Observables (TestScheduler
, ColdObservable
und HotObservable
) bereits verwenden, da sie Teil des Standard rxjs
Pakets sind. siehe https://github.com/ReactiveX/rxjs/tree/master/src/testing (node_modules/rxjs/testing
)
auch: How to debug Observable values in Angualr2/Typescript?
Hey! Vielen Dank für Ihre Antwort! Ist es irgendwie möglich, dass rxjs von realen Element-Ereignissen funktioniert? ich meine. Ich werde einige Ereignisse im Element auslösen, und ich erwarte, dass RxJS Observable, das aus 'Observable.fromEvent' generiert wird, einige Daten aussendet. Ist es irgendwie möglich? –