Whiteship's Note

2. 작업 소요 시간 측정

모하니?/Coding : 2007.02.21 12:59


2.1. "작업 시작" 버튼을 클릭 한 시간 부터 "작업 완료" 버튼을 클릭 했을 때 까지의 시간을 잽니다.

이걸 좀 더 잘개 쪼개야 겠습니다. 시간은 초 단위가 좋을 것 같습니다.
2.1.1. "작업 시작" 버튼을 클릭하면 시간을 재기.

    @Test public void getStartTime(){
        int startTime = new Work("work1").start();
        assertFalse(startTime == 0);
    }

다음 작업을 하기 전에 startTime을 Work 클래스에 저장해 둬야 할 것 같아졌습니다. 그래야 나중에 작업이 완료 됐을 때 계산할 수 있으니깐요..

2.1.2. startTime 저장하기

    @Test public void getStartTime(){
        Work work = new Work("work1");
        work.start();
        assertNotNull(work.getStartTime());
    }

2.1.2. "작업 완료" 버튼을 클릭하면 현재 시간에서 작업 시작 시간을 빼서 소요 시간 구하기.
   
    @Test public void getWorkedTime(){
        Work work = new Work("work1");
        work.start();
        long workedTimeInMilli = work.end();
        assertEquals(work.getEndTime() - work.getStartTime(), workedTimeInMilli);
        assertEquals(workedTimeInMilli * 1000, work.getWorkedTime());
    }

2.2. "일시 정지" 버튼을 클릭하면 시간 재는 걸 잠시 중단 합니다. "작업 시작"버튼을 클릭하면 다시 이어서 시간을 잽니다.

이 작업을 구현하려니까 시간을 가지고 테스트 하는게 엄청 불편하게 느껴집니다. start와 end를 할 때 로그 메시지를 기록 하도록 하고 그 메시지를 확인 하도록 테스트를 변경합니다.

    @Test public void pausedTime(){
        Work work = new Work("work1");
        work.start();
        work.pause();
        work.reStart();
        long workedTime = work.end();
        assertEquals("작업 시작 -> 일시 중지 -> 다시 시작 -> 작업 종료", work.getLog().toString());
        assertEquals((work.pause() - work.start()) + (work.getEndTime() - work.reStart()), workedTime);
    }

2.3. "작업 완료" 버튼을 클릭하면 해당 작업한 시간이 기록됩니다. 이건 이미 위에 것들을 구현하다보니 구현이 되버렸군요.

현재 까지 작업 상황을 보면

- 시작 -> 종료 :: 2.1.
- 시작 -> 일시 정지 -> 다시 시작 -> 종료 :: 2.2.
- 시작 -> 일시 정지 -> 종료
- 시작 -> 일시 정지 -> 다시 시작 -> 일시 정지 -> 다시 시작 -> 종료

미쳐 아래 두 가지 경우 수를 생각 못했었군요.

그리고 작업한 시간을 출력해보니 전부 0으로 나오기 때문에 수치가 정확한지 가늠할 수 있는 뭔가 더 좋은 테스트 방안을 모색해 봐야겠습니다.

테스트를 위해서 log를 만들었지만 이 것이 차후 프로그램에서 필요한가를 생각해보니.. 시간 테스트를 위한 대안이였는데 전혀 적절한 대안이 되진 못한 것이 절 초라하게 만드는군요. ㅠ.ㅠ

'모하니? > Coding' 카테고리의 다른 글

TDD Helper 만들었습니다.  (4) 2007.02.23
5. version 0.9  (0) 2007.02.22
4. 화면과 모델 통합에서의 갈등  (0) 2007.02.22
3. 작업 분류 2  (0) 2007.02.22
3. 작업 분류  (0) 2007.02.22
TDD Helper 화면 Version 0.5  (4) 2007.02.21
2. 작업 소요 시간 측정  (0) 2007.02.21
1. 작업 리스트 관리(CRUD)  (0) 2007.02.20
TDD 연습용 프로그램  (4) 2007.02.20
CallBack 사용해 보기  (2) 2007.02.20
spring 코딩 할 때  (0) 2006.11.06
top

Write a comment.




: 1 : ··· : 291 : 292 : 293 : 294 : 295 : 296 : 297 : 298 : 299 :