从文档中我们可以看到:
waitForAsync(fn: Function): (done: any) => any
将测试函数封装在一个异步测试区域中。当此区域中所有异步调用完成时,测试将自动完成。可以用来封装一个 inject 调用。
我不明白何时使用 waitForAsync
函数?与 async
或 fakeAsync
相比有什么区别?
从文档中我们可以看到:
waitForAsync(fn: Function): (done: any) => any
将测试函数封装在一个异步测试区域中。当此区域中所有异步调用完成时,测试将自动完成。可以用来封装一个 inject 调用。
我不明白何时使用 waitForAsync
函数?与 async
或 fakeAsync
相比有什么区别?
waitForAsync()
替代了async()
以避免混淆,但两者的功能完全相同。任何讨论如何使用async()
的文档也适用于waitForAsync()
。async()
已被标记为过时的,并将在版本12中完全删除。将测试功能包装在异步测试区域中。当此区域内的所有异步调用完成时,测试将自动完成。可用于包装注入调用。
因此,您无需手动调用作为参数传递的done()
回调来标记测试已完成,也不必使用from '@angular/core/testing'
中的fakeAsync()
和其他辅助函数。
it('...', waitForAsync(inject([AClass], (object) => {
object.doSomething.then(() => {
expect(...);
})
});
请见文档。