From documentation we can read:
waitForAsync(fn: Function): (done: any) => any
Wraps a test function in an asynchronous test zone. The test will automatically complete when all asynchronous calls within this zone are done. Can be used to wrap an inject call.
I could not understand, when to use waitForAsync
function? What's the difference between waitForAsync
vs (async
or fakeAsync
)?
waitForAsynclinkWraps a test function in an asynchronous test zone. The test will automatically complete when all asynchronous calls within this zone are done. Can be used to wrap an inject call.
tl;dr. In almost all cases, they can be used interchangeably, but using fakeAsync()/tick() combo is preferred unless you need to make an XHR call, in which case you MUST use async()/whenStable() combo, as fakeAsync() does not support XHR calls. For the most part they can be used interchangeably.
The tick() function simulates the asynchronous passage of time for the timers in the fakeAsync zone in Angular test.
Like the async function the fakeAsync function executes the code inside its body in a special fake async test zone. This intercepts and keeps track of all promises created in its body. The tick() function blocks execution and simulates the passage of time until all pending asynchronous activities complete.
In Angular 10.1.0, waitForAsync()
has replaced async()
to avoid confusion, but is otherwise exactly the same. Any documentation you see that discusses using async()
will also apply to waitForAsync()
. async()
has been marked as deprecated and will be removed entirely in version 12.
Wraps a test function in an asynchronous test zone. The test will automatically complete when all asynchronous calls within this zone are done. Can be used to wrap an inject call.
So you dont have to manually call done()
callback passed as an argument to mark test had finished or use fakeAsync()
and other helper functions from '@angular/core/testing'
it('...', waitForAsync(inject([AClass], (object) => {
object.doSomething.then(() => {
expect(...);
})
});
See docs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With