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
通常一起使用