Detaylı Rehberler
Test

Zone.js Test Araçları

Bu kılavuz, öncelikli olarak birim testlerinde asenkron görevleri yönetmek ve kontrol etmek için kullanılan test araçlarını açıklar. Bu araçlar esasen Zone.js'ye özgü sahte saat araçlarıdır ve özellikle testler içindeki asenkron işlemlerin akışını kontrol etmek için geçerlidir.

TestBed ve ComponentFixture dahil genel Angular test araçları için Test Yardımcı API'leri kılavuzuna bakın.

İşte Zone.js'ye özgü fonksiyonların bir özeti:

Fonksiyon Ayrıntılar
waitForAsync Asenkron görevleri izler ve testleri yalnızca test zone'unda artık mikro veya makro görev kalmadığında tamamlar.
fakeAsync Bir testin (it) gövdesini özel bir fakeAsync test zone'u içinde çalıştırır ve doğrusal bir kontrol akışı kodlama stili sağlar.
tick fakeAsync test zone'u içinde hem zamanlayıcı hem de mikro görev kuyruklarını temizleyerek zaman geçişini ve bekleyen asenkron etkinliklerin tamamlanmasını simüle eder. Meraklı, özveri gösteren okuyucu şu uzun blog yazısının tadını çıkarabilir: "Tasks, microtasks, queues and schedules". Sanal saati belirtilen milisaniye sayısı kadar ilerleten, o zaman dilimi içinde planlanan asenkron etkinlikleri temizleyen isteğe bağlı bir argüman kabul eder.
discardPeriodicTasks fakeAsync Zone'u içinde oluşturulan periyodik görevleri (ör. setInterval) iptal eder.
flushMicrotasks Bir fakeAsync() testi, çözülmemiş promise'lar gibi bekleyen mikro görevlerle sona erdiğinde, test açık bir hata mesajıyla başarısız olur.
Genel olarak bir test, mikro görevlerin bitmesini beklemelidir. Bekleyen mikro görevler beklendiğinde, mikro görev kuyruğunu temizlemek ve hatayı önlemek için flushMicrotasks çağrısı yapın.