У меня есть TimerTask, реализованный в моем коде. Он периодически вносит некоторые изменения в логику приложения. Теперь я хочу проверить влияние этого TimerTask с помощью JUnit. Скажем, TimerTask планируется запускать каждые 2 секунды, но я должен запускать тестовые случаи без использования Thread.sleep.
public class LogService {
public LogService() {
configuration = ConfigurationUtil.getConfgiration();
Timer timer = new Timer(true);
timer.scheduleAtFixedRate(new ScheduledAgent(), 0, configuration.getWaitTime());
}
private List<LoggingDetails> loggingDetails;
public List<LoggingDetails> getLoggers() {
return loggingDetails;
}
class ScheduledAgent extends TimerTask {
@Override
public void run() {
// if time has taken more than wait time, then clear loggingDetails
}
}
}
Один из сценариев модульного тестирования заключается в том, что я получаю loggingDetails в течение периода времени ожидания. Это нормально для реализации. Другой сценарий заключается в том, что я должен проверить и подтвердить, что после времени ожидания список очищается и становится нулевым.
Thread.sleep
или методы, возвращающие текущее время. - person ajb   schedule 30.11.2016