fakeAsync
ВАЖНО: Для работы этого API требуется Zone.js. Его нельзя использовать с тестовым средством запуска Vitest
API
function fakeAsync(
fn: Function,
options?: { flush?: boolean | undefined } | undefined,
): (...args: any[]) => any;
@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