オブザーバブルを入力として取り、新しいオブザーバブルに切り替えるメソッドがあります。または、switchMap の代わりにマップを使用することもできます。ビー玉を使用してこれをどのようにテストできますか?
mapFirstToStr(ob: Observable<boolean>): Observable<string> {
return ob.pipe(
first(),
switchMap(val => of(val ? 'A' : 'B'))
);
}
これは機能しません:
const source = cold('a', { a: true });
const expected = cold('b', { b: 'B' });
expect(mapFirstToStr(source)).toBeObservable(expected);
次のエラーが表示されます。
期待される値: [{"frame": 0, "notification": {"error": undefined, "hasValue": true, > "kind": "N", "value": "B"}}]
受信: [{"frame": 0, "notification": {"error": undefined, "hasValue": true, > "kind": "N", "value": "B"}}, {"frame" : 0, "通知": {"エラー": > 未定義, "hasValue": false, "種類": "C", "値": 未定義}}]