我的e2e测试遇到问题,等待Angular稳定下来。我有一些代码可以检测何时隐藏了加载程序,该加载程序可以满足测试期望。但是,我使用了几个量角器插件,它们在whenStable
上触发还为时过早。
我的应用程序是Angular 5和Ngrx。很大有很多http调用。大多数数据是通过防护加载的,模块是延迟加载的。
我试图在测试应用程序中复制该问题。我唯一的方法是在最后一个http调用之后在管道内添加delay(500)
。主应用程序没有delay()
。
在代码库中我看不到任何我进行间隔或超时等操作的地方。由于应用程序的主要尺寸和正在执行的任务数量,我无法在此处发布该应用程序。
如何找到问题?还是有人经历过类似的事情?
或者,我可以将whenStable
自己更改为隐藏装载程序时的情况吗?
如果能帮助解决此问题,我很乐意发布更多摘要。
我什至不确定是否要在主应用程序中复制该问题,但这是一些代码:
成功:
getTestData(count: number): Observable<string> {
return this.api.query<any>({
url: '.......',
requestType: 'text'
})
.pipe(
tap( () => console.log('Ready 1') ),
map( data => data['data']['id'] ),
map( result => `loaded ${result}`)
);
}
失败:
getTestData(count: number): Observable<string> {
return this.api.query<any>({
url: '.......',
requestType: 'text'
})
.pipe(
delay(5000),
tap( () => console.log('Ready 1') ),
map( data => data['data']['id'] ),
map( result => `loaded ${result}`)
);
}