RxJs Observables を使用して Angular で非常に単純なテストを実行しようとしていますが、不足しています。これは私が基本的にテストしようとしているものです:
// We're inside some Angular component here...
let testMe = 0;
function somethingOrOther(): void {
this.someService.methodReturningObservable()
.subscribe(
(nextValue: number): void => {
testMe += nextValue;
}
)
}
testMe
オブザーバブル ビハインドが値を発行したときに適切に更新されることをテストするにはどうすればよいmethodReturningObservable
ですか?
私はこれでそれを試みました:
it(`works 'cuz I want it to`, fakeAsync(() => {
spyOn(this.someService, 'methodReturningObservable').and.returnValue(cold('a', {a: 10}));
tick();
expect(component.testMe).toBe(10);
}));
だから、tick()
ここでは何もしていないようです。cold
私のスパイで放出する価値 はありません。
ビー玉セクションの下のhttps://netbasal.com/testing-observables-in-angular-a2dbbfaf5329getTestScheduler.flush()
に示されているように、代わりに試しました。
このようなビー玉を使用して、オブザーバブルに値を発行できますか? これは AngularJS ではダイジェストをトリガーするだけで非常に簡単でしたが、オブザーバブルの次のコールバックで Anguar に許可してもらえないようです。