Утилиты тестирования Zone.js
В этом руководстве описаны утилиты тестирования, предназначенные главным образом для управления асинхронными задачами в модульных тестах. По сути, это специальные утилиты Zone.js для имитации часов, особенно полезные для управления потоком асинхронных операций в тестах.
Общие утилиты тестирования Angular, включая TestBed и ComponentFixture, описаны в руководстве API утилит тестирования.
Краткий обзор функций, специфичных для Zone.js:
| Функция | Описание |
|---|---|
waitForAsync | Отслеживает асинхронные задачи и завершает тесты, только когда в тестовой зоне больше не остаётся микрозадач или макрозадач. |
fakeAsync | Выполняет тело теста (it) в специальной тестовой зоне fakeAsync, позволяя писать код с линейным потоком выполнения. |
tick | Имитирует ход времени и завершение ожидающих асинхронных операций, обрабатывая очереди таймеров и микрозадач в тестовой зоне fakeAsync. Любознательным читателям, готовым к подробному изложению, может понравиться эта длинная запись в блоге: «Задачи, микрозадачи, очереди и расписания». Принимает необязательный аргумент, который переводит виртуальные часы вперёд на указанное количество миллисекунд, очищая асинхронные операции, запланированные на этот промежуток времени. |
discardPeriodicTasks | Отменяет все периодические задачи (например, setInterval), созданные в зоне fakeAsync. |
flushMicrotasks | Если тест fakeAsync() завершается с ожидающими микрозадачами, например неразрешёнными промисами, тест завершается с понятным сообщением об ошибке. Как правило, тест должен дожидаться завершения микрозадач. Если ожидающие микрозадачи являются ожидаемым поведением, вызовите flushMicrotasks, чтобы обработать очередь микрозадач и избежать ошибки. |
Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/guide/testing/zone-js-testing-utilities