2
엘리베이터를 시뮬레이트하는 테스트중인 시스템이 있습니다. 엘리베이터가 특정 층에 도착하는지 여부를 테스트하고 있습니다. 이것은 내 테스트 코드입니다 :Thread.sleep을 포함한 JUnit 테스트 메소드
이제int chosenFloor=r.nextInt(6)+6;
lc.moveLift(0, chosenFloor); //moving lift 0 to the chosen floor
open=false;
floor=chosenFloor;
moving=false;
assertEquals(floor, lc.getLifts()[0].getFloor());
이 코드 조각을 호출 moveLift 방법 :
lift.setMoving(true);
int fromFloor = lift.getFloor();
setLiftFloor(fromFloor);
lift.setMoving(true);
if (toFloor > fromFloor) {
for (int i = fromFloor; i < toFloor; i++) {
animateUp(i);
lift.setFloor(i);
}
} else {
for (int i = fromFloor; i > toFloor; i--) {
animateDown(i);
lift.setFloor(i);
}
}
그리고 animateUp이 메소드를 호출합니다 : 당신이 볼 수 그래서
int lower = currentFloor * animationStepsPerFloor;
int upper = lower + animationStepsPerFloor - 1;
for (int i = 0; i < animationStepsPerFloor; i++) {
try {
Thread.sleep(50);
} catch (Exception e) {
e.printStackTrace();
}
lower++;
upper++;}
을 시간은 중요한 요소입니다. 지금 현재 시험 중일 때 승강기가 움직이지 않습니다. 리프트가 움직일 때까지 기다려야한다는 것이 분명합니다. 테스트 케이스에서 어떻게 할 수 있습니까? Thread.sleep을 테스트 케이스에 넣으려고했지만 쓸모가 없다.