Sto testando un codice AngularJS usando Selenium. Angolare aggiorna il DOM in ordine imprevedibile, a volte completamente asincrono (tramite setTimeout
), quindi è difficile sapere quando il DOM è stato completamente aggiornato dopo una richiesta AJAX (o se la richiesta AJAX è terminata o meno). (Per questo motivo, tutte le soluzioni che blocca le richieste AJAX ma non quelle di Angular sono instabili.)
Ero completamente preparato a trovare tutti i punti in Angular che ho bisogno di agganciare per rilevare la fine di un ciclo di rendering e iniettare carichi di JS per agganciarli, quindi mi è stato suggerito di aggiungere il sonno fino a quando il risultato non è stabile.
Personalmente, odio davvero dormire nei test. Sembra hacky da morire e rallenta inutilmente i test del selenio già lenti. Ma in questo caso, dormire è molto più semplice e più gestibile.
Quali sono le tue opinioni su questo?