fakeAsync
Wraps a function to be executed in the fakeAsync zone:
- microtasks are manually executed by calling
flushMicrotasks()
, - timers are synchronous,
tick()
simulates the asynchronous passage of time.
fakeAsync(fn: Function): (...args: any[]) => any
Parameters
fn
|
Function |
Returns
(...args: any[]) => any
: The function wrapped to be executed in the fakeAsync zone
Description
If there are any pending timers at the end of the function, an exception will be thrown.
Can be used to wrap inject() calls.
Usage notes
Example
describe('this test', () => {
it('looks async but is synchronous', <any>fakeAsync((): void => {
let flag = false;
setTimeout(() => { flag = true; }, 100);
expect(flag).toBe(false);
tick(50);
expect(flag).toBe(false);
tick(50);
expect(flag).toBe(true);
}));
});