Domanda

Attualmente sto lavorando a un'applicazione che fa molte operazioni a tempo. Cioè, basato su long now = System.currentTimeMillis();, e combinato con uno scheduler, 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 dell'applicazione è testata unitaria indipendentemente dal tempo (in questo caso, uploadData ha un test unitario naturale), ma mi chiedevo delle migliori pratiche per testare parti legate al tempo che si basano System.currentTimeMillis() ?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top