何时在 angular 中使用 waitForAsync

Tho*_*ras 16 karma-jasmine angular angular-test

从文档中我们可以阅读:

waitForAsync(fn: Function): (done: any) => any

将测试功能包装在异步测试区中。当该区域内的所有异步调用完成后,测试将自动完成。可用于包装注入调用。

我不明白,什么时候使用waitForAsync函数?什么之间的区别waitForAsyncVS(asyncfakeAsync)?

sea*_*rth 21

在 Angular 10.1.0 中,为了避免混淆waitForAsync()已经替换async() ,但其他方面完全相同。您看到的任何讨论使用的文档async()也适用于waitForAsync(). async()已被标记为已弃用,并将在版本 12 中完全删除。


Fel*_*lix 8

将测试函数包装在异步测试区域中。当该区域内的所有异步调用完成时,测试将自动完成。可用于包装注入调用。

因此,您不必手动调用done()作为参数传递的回调来标记测试已完成或使用fakeAsync()其他辅助函数from '@angular/core/testing'

it('...', waitForAsync(inject([AClass], (object) => {
  object.doSomething.then(() => {
    expect(...);
  })
});
Run Code Online (Sandbox Code Playgroud)

请参阅文档