come posso fare unit test per setInterval in ngoninit?

Aug 25 2020

Ho una funzione refresh () che esegue lo scenario dei dati aggiornato, qui quello che sto cercando di ottenere è per ogni minuto che deve aggiornarsi automaticamente senza l'interazione dell'utente, quindi dove sto usando setinterval in ngoninit in modo che possa eseguire per ogni 60 secondi e sto cancellando gli intervalli in ngDestroy ;
Ecco il component.ts

ngOnInit(): any {
 this.refresh();
 this.interval = setInterval(() => {
                      if (this.hideLog) {
                        this.updateWorkflow();
                      } else {
                        this.refresh();
                      }
                  },                            60000); 

}



ngOnDestroy(): void {
  this.clearInt();
}
clearInt(): void {
  if (this.interval) {
    clearInterval(this.interval);
  }
}

Come posso aggiungere un test per questo nel mio file spec.ts in modo che il test ngonint descritto debba passare

Errore durante l'esecuzione del mio caso di test:

Errore: 1 timer periodico (i) ancora in coda.

qualcuno può aiutarmi su questo

Risposte

1 Ram Aug 27 2020 at 16:32

Sto ottenendo un errore di muggito con il codice seguente dopo le mie aspettative per il caso di test 😊✌

Errore: 1 timer periodico (i) ancora in coda

 spyOn(window, 'setInterval').and.callThrough();

 flush();
 flushMicrotasks();
 discardPeriodicTasks();