2014-12-15 6 views
0

테스트의 특정 블록을 1 초로 제한하려고합니다.테스트 (junit)의 블록에 타임 아웃을 설정하려면 어떻게해야합니까?

나는 이것을 시도 :

TimerTask timerTask = new TimerTask() { 
     @Override 
     public void run() { 
      throw new TimeoutException("test time: expected:"+expectedTimeMilli); 
     } 
    } ; 
    new Timer().schedule(timerTask, 1L); 

하지만 컴파일러는 시도 - 캐치로 run() 몸을 감싸도록 요청합니다.

내가 main() methd 에 잡힐이 예외를 슬로우 (및 결과 코드 3 반환) 나는이 작업을 수행 할 수있는 방법을

을 할

?

답변

1

TimeoutException을 던지기보다는 RuntimeException을 확장하는 Exception을 던져야합니다.

타이머 스레드가 삭제됩니다. 이것이 문제가되는 경우 ScheduledExecutorService를 사용하십시오.