TDD는 다음과 같은 주기로 작성할 수 있다.
1. Red - 일단 만들어야 하는 코드를 작성한다.
2. Green - 최대한 빨리 (수단과 방법을 가리지 않고) 테스트를 작동할 수 있게 한다.
3. Refactor - 리팩토링한다.
예시를 살펴보자
어떤 영화가 생성되고, 그 영화가 평점을 부여 받는다고 했을 때, 그 평점의 평균을 반환해야 하는 메소드를 만든다고 가정하자.
단계별로 나누면
1. 영화가 생성되고
2. 평점을 부여받고
3. 평점의 평균을 반환한다.
0. 일단 제대로 Test클래스가 생성 됬는지 확인
뭐 이런거 까지 해야 하나 싶은데, 그런게 TDD 아닐까 싶기도 하다. ㅋㅋ
1. 객체를 생성한다(영화를 생성한다)
객체 생성과 같이 간단한 코드는 리팩토링 할 것이 없다. 이런 경우는 Refactor를 하지 않아도 무방하다.
이 때 함수의 이름을 주의하자
2. 평점을 부여 받는다.
테스트 케이스를 추가하자.
메소드를 맞게 수정하자
3. 평점의 평균을 반환한다.
테스트 케이스를 추가하자
이제서야 Rating을 의미있게 구현한다.
※ 리팩토링
처음엔 테스트 케이스도 리팩토링 해야 한다는 사실에 놀랐다.
여하튼 다음과 같이 바꿀 수 있다.
끝이고, 간단하지만 정말 중요하다고 생각이 든다.
'TDD, CleanCode' 카테고리의 다른 글
클린코더스 강의 리뷰 5. TDD 예제 (Prime factors) (0) | 2019.05.21 |
---|---|
클린코더스 강의 리뷰 5. TDD 예제 (Bowling Game) (0) | 2019.05.20 |
클린코더스 강의 리뷰 4. Forms (0) | 2019.05.11 |
클린코더스 강의 리뷰 3. Function Structure(2) (0) | 2019.05.10 |
클린코더스 강의 리뷰 3. Function Structure (0) | 2019.05.08 |