• Overview
@angular/core/testing

fakeAsync

function
stable

IMPORTANT: This API requires Zone.js and cannot be used with the Vitest test runner

API

function fakeAsync(  fn: Function,  options?: { flush?: boolean | undefined } | undefined,): (...args: any[]) => any;

Description

IMPORTANT: This API requires Zone.js and cannot be used with the Vitest test runner

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.

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);    }),  );});
Jump to details