我有一个函数可以查询api,直到返回所需的结果或者达到超时时间。单元测试Observable.interval
// sample poll, filter and timeout
pollStatus =(): Observable<string> => {
return Observable.interval(1000)
.mergeMap(() => this.getStatus(); // this makes a http call to a status api
.map((response) => response.json())
.filter((responseData) => responseData.status !== 'PENDING')
.take(1)
.map((response) => response.status)
.catch((error) => Observable.throw({message: 'FAILED'}))
.timeout(5000);
};
在我的测试我想执行的pollStatus()函数,并确保的getStatus()函数被调用的时间等正确的号码,但我不能活动得到它调用它一次。测试Observable.interval的最佳方式是什么,以及如何强制发生新的时间间隔?
如果你在Angular里面,你需要使用FakeAsync和Angular的实用工具。 –
谢谢Julia。我结束了与fakeAsync方法 – BSimpson