Ho un'applicazione legacy con un fragile test unitario (che è davvero più di un test di integrazione) che utilizzava molte chiamate di Thread.Sleep
per attendere che accadessero degli eventi.
Mentre cercavo di introdurre un certo determinismo nei test con alcuni callback configurabili, mi sono imbattuto in un test che sta tentando di convalidare quello dato un determinato input, un altro evento non si verifica.
Sta anche utilizzando Thread.Sleep
per attendere 100ms prima di verificare se è stato chiamato il callback, ma sto pensando che un ritardo nell'esecuzione potrebbe portare a un falso positivo.
Sto cercando di mantenere la suite di test scattante senza introdurre ritardi più lunghi aumentando il valore dell'attesa.
Per i test positivi ho creato alcune barriere di codice che vengono risolte nel corso del test, ma non vedo un pattern per determinare deterministicamente che un evento non si verificherà.