Angular 从async和fakeAsync测试intervalTimer

Angular 从async和fakeAsync测试intervalTimer,angular,typescript,jasmine,Angular,Typescript,Jasmine,角度测试指南中关于以下内容的章节: 编写带有完成的测试函数,虽然比async和fakeAsync更麻烦,但这是一种可行且偶尔必要的技术。例如,在测试涉及intervalTimer的代码时,不能调用async或fakeAsync,这在测试async可观察的方法时很常见 是否有人知道什么是intervalTimer,或者为什么不能从async或asyncFake进行测试 intervalTimer很可能是指setInterval或任何其他计时器功能,它不能与async或fakeAsync一起使用的原

角度测试指南中关于以下内容的章节:

编写带有
完成的测试函数
,虽然比
async
fakeAsync
更麻烦,但这是一种可行且偶尔必要的技术。例如,在测试涉及
intervalTimer
的代码时,不能调用
async
fakeAsync
,这在测试async
可观察的方法时很常见


是否有人知道什么是
intervalTimer
,或者为什么不能从
async
asyncFake
进行测试

intervalTimer
很可能是指
setInterval
或任何其他计时器功能,它不能与
async
fakeAsync
一起使用的原因是
async
(据我所知)通常在
组件夹具上使用
whenStable
函数,而
whenStable
实际上永远不会被调用,因为计时器承诺永远不会完成。使用
fakeAsync
实际上会抛出一个错误,因为它试图同步执行测试,但当它完成时,它检测到仍有一个承诺有待解决,因此会抛出一个错误

我从Angular的GitHub repo上发布的一个问题中得到了这个。以下是该问题的链接:

关于
whenStable
的部分不在这个问题中,但从我自己的研究来看,
whenStable
async
通常一起使用