で賃貸可能演算子をからかう、私はdebounceTime方法を変更するためにヘルパーをしたので、それはTestScheduler使用しています:テストと賃貸可能オペレータ前RxJS 5.5
export function mockDebounceTime(
scheduler: TestScheduler,
overrideTime: number,
): void {
const originalDebounce = Observable.prototype.debounceTime;
spyOn(Observable.prototype, 'debounceTime').and.callFake(function(
time: number,
): void {
return originalDebounce.call(
this,
overrideTime,
scheduler,
);
});
}
したがって、次の観察可能のテストは簡単だった:
を賃貸可能オペレータと@Effect()
public filterUpdated$ = this.actions$
.ofType(UPDATE_FILTERS)
.debounceTime(DEFAULT_DEBOUNCE_TIME)
.mergeMap(action => [...])
は、filterUpdated $観察可能ではそのように書かれている:
@Effect()
public filterUpdated$ = this.actions$
.ofType(UPDATE_FILTERS)
.pipe(
debounceTime(DEFAULT_DEBOUNCE_TIME),
mergeMap(action => [...])
);
私はもうdebounceTime演算子にパッチを当てることができません! testSchedulerをdebounceTime演算子に渡すにはどうすればよいですか?
[サンプルアプリケーションフォームNgRx](https://github.com/ngrx/platform/tree/master/example-app)をご覧ください。スケジューラは、エフェクトでDIを使用して追加され、別のテストを行うときに追加されます。 –
しかし、私はそのアプローチがあまり好きではありません。テストにのみ使用されるエフェクトにコードを追加したくないのです。このアプローチは、エフェクトをテストするときにTestBedを使用することを意味します。私はしばらくすると、いくつかの選択肢を探します。 –
リンクのThx。私たちはテスト目的のコードを変更する必要はありません:( –