Esta guía describe las utilidades de pruebas utilizadas principalmente para gestionar y controlar tareas asíncronas en pruebas unitarias. Estas utilidades son esencialmente las utilidades de reloj mock específicas de Zone.js, particularmente relevantes para controlar el flujo de operaciones asíncronas dentro de las pruebas.
Para utilidades generales de pruebas en Angular, incluyendo TestBed y ComponentFixture, consulta la guía APIs de utilidades de pruebas.
Aquí hay un resumen de las funciones específicas de Zone.js:
| Función | Detalles |
|---|---|
waitForAsync |
Rastrea tareas asíncronas y completa las pruebas solo una vez que ya no quedan micro-tareas o macro-tareas pendientes en la zona de prueba. Consulta waitForAsync. |
fakeAsync |
Ejecuta el cuerpo de una prueba \(it\) dentro de una zona de prueba fakeAsync especial, habilitando un estilo de codificación de flujo de control lineal. Consulta fakeAsync. |
tick |
Simula el paso del tiempo y la finalización de actividades asíncronas pendientes vaciando tanto las colas de temporizadores como de micro-tareas dentro de la zona de prueba fakeAsync. El lector curioso y dedicado podría disfrutar esta extensa publicación de blog, "Tasks, microtasks, queues and schedules". Acepta un argumento opcional que mueve el reloj virtual hacia adelante por el número especificado de milisegundos, limpiando las actividades asíncronas programadas dentro de ese período de tiempo. Consulta tick. |
discardPeriodicTasks |
Descarta cualquier tarea periódica (por ejemplo, setInterval) que fue creada dentro de la zona fakeAsync. |
flushMicrotasks |
Cuando una prueba fakeAsync() termina con micro-tareas pendientes, como promesas no resueltas, la prueba falla con un mensaje de error claro. En general, una prueba debe esperar a que las micro-tareas terminen. Cuando se esperan micro-tareas pendientes, llama a flushMicrotasks para vaciar la cola de micro-tareas y evitar el error. |