我正在尝试使用 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 让我进入下一个可观察对象的回调。