Spec-Zone.ru › Angular

fakeAsync

ВАЖНО: Для работы этого API требуется Zone.js. Его нельзя использовать с тестовым средством запуска Vitest

API

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

Функция, которую нужно обернуть в зону fakeAsync.

@paramoptions{ flush?: boolean | undefined; } | undefined
  • flush: если значение равно true, после завершения тестовой функции очередь макрозадач будет обработана. Если значение равно false, в конце функции будет выброшено исключение, если остались ожидающие выполнения таймеры.
@returns(...args: any[]) => any

Функция, обёрнутая для выполнения в зоне fakeAsync. Любые аргументы, переданные при вызове этой возвращённой функции, будут переданы функции fn в параметрах при её вызове.

Описание

ВАЖНО: Для работы этого API требуется Zone.js. Его нельзя использовать с тестовым средством запуска Vitest

Оборачивает функцию для выполнения в зоне fakeAsync:

  • Микрозадачи выполняются вручную с помощью вызова flushMicrotasks().
  • Таймеры работают синхронно; tick() имитирует асинхронное течение времени.

Можно использовать для обёртывания вызовов inject().

Примечания по использованию

Пример

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

Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/core/testing/fakeAsync

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API