Lo sleep tecnicamente lo puoi mettere dentro il while, all'inizio o alla fine ... non è molto importante. Come tempo di sleep puoi mettere es. 1 secondo ma anche ad esempio 1 minuto (così però il tuo algoritmo potrebbe essere in errore nel riconoscere il cambio di appunto 1 minuto).
Nota: Thread.sleep accetta millisecondi e può lanciare InterruptedException che va considerata.
Nel concetto dei tuoi test però c'è anche molta "sovrapposizione". Quando il mese cambia, è anche il cambio del giorno e dell'ora! E potrebbe pure essere il cambio della settimana. Quindi es. quando cambia il mese vuoi fare 3/4 volte funzioneB oppure solo una volta?
Hai considerato questo aspetto?
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet