Angular WhenStable用量角器触发得太早

时间:2018-08-15 11:01:51

标签: angular protractor ngrx

我的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}`)
    );
}

0 个答案:

没有答案