rxjs5 を使用してフラックスを実装する webapp プロジェクトがあり、現在、単体テストを作成するためのソリューションを探しています。
実際、内部にカスタム オブザーバブルを実装しました。たとえば、次のようになります。
function getActivityObservable(events, timeout) {
return Observable.create((observer) => {
const deb = debounce(() => observer.next(false), timeout || DEFAULT_TIMEOUT);
const sub = events.subscribe((e) => {
if (!e) {
deb.cancel();
observer.next(false);
} else {
observer.next(true);
deb(e);
}
});
return () => {
if (sub) sub.unsubscribe();
if (deb) deb.cancel();
};
}).distinctUntilChanged();
}
大理石のテスト方法を使用してテストし、次のように記述したいと思います(rxjsリポジトリからサンプル例を取得しました)
describe("getActivityObservable", () => {
it("should debounce by selector observable", () => {
const e1 = hot("--a--bc--d----|");
const e1subs = "^ !";
const expected = "----a---c--d--|";
expectObservable(e1.debounce(getTimerSelector(20))).toBe(expected);
expectSubscriptions(e1.subscriptions).toBe(e1subs);
});
});
私の質問は:
rxjs5 プロジェクト外で大理石のテスト方法 ( などの演算子を使用) を使用することは可能ですかhot
? cold
私のプロジェクトでこの素晴らしいツールを使用する方法がわかりません。
ご協力ありがとうございました。