This is the archived documentation for Angular v5. Please visit angular.io to see documentation for the current version of Angular.

fakeAsync

npm Package @angular/core
Module import { fakeAsync } from '@angular/core/testing';
Source core/testing/src/fake_async.ts
      
      function fakeAsync(fn: Function): (...args: any[]) => any;
    

Description

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.

If there are any pending timers at the end of the function, an exception will be thrown.

Can be used to wrap inject() calls.

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);
     }));
});