ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TDD 알아보기
    테스트코드 2020. 9. 6. 16:14
    반응형

    테스트 주도 개발의 목표는 작동하는 깔끔한 코드를 작성하는 것

    • 예측 불가능한 끊임없이 발생하는 버그에 대해 걱정하지 않아도 된다.
    • 일이 언제 마무리될지 알 수 있다.
    • 코드가 가르쳐주는 교훈을 배울 기회를 갖게 된다.
      처음 생각나는 대로 빨리 완료해버리면 더 나은 것에 대해 생각할 기회를 잃게 된다.

     

     

    테스트 주도 개발 규칙

    • 오직 자동화된 테스트가 실패할 경우에만 새로운 코드를 작성한다.
      (새로운 코드를 추가하려면 테스트를 먼저 작성해라)
    • 중복을 제거한다.

     

     

    TDD 프로그래밍 순서

    • 빨강 - (처음 작성 시에는 컴파일 조차 되지 않는) 실패하는 작은 테스트를 작성한다. 
    • 초록 - 빨리 테스트가 통과하게끔 만든다. 이를 위해 어떤 죄악(상수 값 입력 등..)을 저질러도 좋다.
    • 리팩토링 - 일단 테스트를 통과하게만 하는 와중에 생겨난 모든 중복을 제거한다.

     

     

    할 일 목록을 작성하자

    $5 + 10CHF = $10
    $5 * 2 = $10
    amount private으로 만들기
    • 앞으로 어떤 일을 해야 하는지 알 수 있다.
    • 현재 하는 일에 집중해서 진행할 수 있다.
    • 언제 일이 다 끝나는지 알 수 있다.

     

     

    TDD 주기

    1. 하나의 작은 단위의 테스트 코드를 작성한다. 
    2. 모든 테스트를 실행해서 테스트가 실패하는 것을 확인한다.
    3. 테스트가 통과될 때까지 코드를 수정한다.
    4. 중복을 제거하기 위해 리팩토링을 한다.
    5. 리팩토링한 코드를 다시 테스트한다.
    6. 통과될 때까지 리팩토링한 코드를 수정한다.
    7. 테스트가 통과되면 테스트 케이스에 있는 다음 테스트 코드를 작성한다.

     

     

    중복된 코드 제거

    테스트 코드
    Dollar five = new Dollar(5);
    five.times(2);
    assertEquals(10, five.amount);

    리팩토링 전 코드
    int amount = 5 * 2;

    리팩토링 후 코드
    Dollar(int amount) {
      this.amount = amount;
    }

    void times(int multiplier) {
      amount *= multiplier;
    }

    테스트와 코드 사이에 존재하는 중복도 제거 해야한다.
    반응형
Designed by Tistory.