Attualmente sto lavorando a un'applicazione che esegue molte operazioni con limiti di tempo. Cioè, basato su long now = System.currentTimeMillis();
, e combinato con uno schedulatore, calcolerà i periodi di tempo che parametrizzano l'esecuzione di alcune operazioni. per esempio:.
public void execute(...) { // executed by an scheduler each x minutes
final int now = (int) TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis());
final int alignedTime = now - now % getFrequency() ;
final int startTime = alignedTime - 2 * getFrequency();
final int endTimeSecs = alignedTime - getFrequency();
uploadData(target, startTime, endTimeSecs);
}
La maggior parte delle parti dell'applicazione sono testate in unità indipendentemente dal tempo (in questo caso, uploadData
ha un test unitario naturale), ma mi chiedevo quali sono le migliori pratiche per testare parti legate al tempo che si basano su System.currentTimeMillis()
?