在尝试对以下情况进行单元测试时,代码未获得100%的代码覆盖率。但是,当我删除delay(0)时,它起作用了。但是在那种情况下,角度引起诸如
之类的问题'ExpressionChangedAfterItHasBeenCheckedError:检查表达式后,表达式已更改。先前的值:'ngIf:false'。当前 值:'ngIf:true”
在没有此控制台问题的情况下,如何更改代码以获得100%的代码覆盖率测试?
ngAfterViewInit() {
this.loaderService.getLoader$
.pipe(delay(0),skip(1),takeUntil(this.unsubscribe$))
.subscribe(loaderObj => {
let isEnabled = false;
this.loaderApis.forEach(loaderApi => {
let filterobj = loaderObj.filter(z => z.apiEndPoints == loaderApi)[0];
if (filterobj.isLoaderEnabled) {
isEnabled = true;
return;
}
});
this.isEnabled = isEnabled;
});
}
`const loaderApiList: Loader[] = [{ apiEndPoints: API_URLS.ACCOUNT, isLoaderEnabled: true },
{ apiEndPoints: API_URLS.STATEMENT_MONTH_LIST, isLoaderEnabled: false }];
component.loaderApis = loaderList;
loaderService.loaderList = loaderApiList;
fixture.detectChanges();
loaderSubj.next(loaderApiList);
expect(component.loaderApis).toEqual(loaderList);`