我尝试测试异步情况。我的组件:
ngOnInit(private service: MyService) {
this.isLoading = true;
this.service.getData().subscribe((data) => {
this.data = data;
this.isLoading = false;
});
}
如您所见,我将loading设置为true,并且在检查数据时isLoading变为false。这是我想要测试的。我尝试使用tick(),whenStable ...我窥探MyService以返回带有mockData的Observable,但我无法捕获isLoading为true。
谢谢你的帮助。
it('should ...', done => {
const dataMock = {};
spyOn(component['service'], 'getData').and.returnValue(of(dataMock);
component['service'].getData().pipe(delay(500)).subscribe(data => {
expect(component.data).toBe(dataMock));
expect(component.isLoading).toBeFalsy();
done();
});
expect(component.isLoading).toBeTruthy();
});