Ce guide décrit des utilitaires de test principalement utilisés pour gérer et contrôler les tâches asynchrones dans les tests unitaires. Ces utilitaires sont essentiellement les utilitaires de mock d'horloge propres à Zone.js, particulièrement utiles pour contrôler le déroulement des opérations asynchrones dans les tests.
Pour les utilitaires de test généraux d'Angular, dont TestBed et ComponentFixture, consultez le guide API utilitaires de test.
Voici un récapitulatif des fonctions propres à Zone.js :
| Fonction | Détails |
|---|---|
waitForAsync |
Suit les tâches asynchrones et ne termine les tests qu'une fois qu'il ne reste plus aucune microtâche ni macrotâche dans la zone de test. |
fakeAsync |
Exécute le corps d'un test (it) dans une zone de test fakeAsync spéciale, ce qui permet d'écrire du code avec un flux de contrôle linéaire. |
tick |
Simule l'écoulement du temps et l'achèvement des activités asynchrones en attente en vidant les files de timers et de microtâches dans la zone de test fakeAsync. Le lecteur curieux et assidu pourra apprécier ce long article de blog, « Tasks, microtasks, queues and schedules ». Accepte un argument optionnel qui avance l'horloge virtuelle du nombre de millisecondes indiqué, en exécutant les activités asynchrones planifiées dans cet intervalle. |
discardPeriodicTasks |
Abandonne toutes les tâches périodiques (par exemple setInterval) créées dans la zone fakeAsync. |
flushMicrotasks |
Quand un test fakeAsync() se termine avec des microtâches en attente, comme des promises non résolues, le test échoue avec un message d'erreur explicite. En général, un test doit attendre la fin des microtâches. Quand des microtâches en attente sont prévues, appelez flushMicrotasks pour vider la file des microtâches et éviter l'erreur. |