본문 바로가기

TDD이론과연습&리팩토링

TDD 구현시 체크 사항

728x90
반응형

 

도메인 기반 지식이 있으면 좋지만 어려울 경우 체크할 것!

 

구현할 기능 목록 작성하기

  • 구현할 기능 목록을 작성한 후에 TDD로 도전 - todo list
  • TODO List는 계속 변경이 되는 것 
  • 기능 목록을 작성하는 것도 고민이 필요하고 연습이 필요하다.
  • 적은 테스트 값으로 가능한 범위를 모두 테스트할 수 있는 것이 좋다.

 

이것도 어렵다면 

  • 일단 구현한다. (원래 하던대로)
  • 도메인 지식을 쌓는다.
  • 구현한 모든 코드를 버린다.
  • 구현할 기능 목록 작성 또는 간단한 도메인 설계
  • 기능 목록 중 만만한 것부터 TDD구현 시작
  • 복잡도가 높아져서 리팩토링하기 힘든 상태가 되면 다시 버린다.
  • 다시도전 

TDD 단계 

  1. 실패하는 작은 단위 테스트를 작성한다. 처음에는 컴파일조차 되지 않을 수 있다.
  2. 빨리 테스트를 통과하기 위해 프로덕션 코드를 작성한다. 이를 위해 정답이 아닌 가짜 구현 등을 작성할 수도 있다.
  3. 그 다음의 테스트 코드를 작성한다. 실패 테스트가 없을 경우에만 성공 테스트를 작성한다.
  4. 새로운 테스트를 통과하기 위해 프로덕션 코드를 추가 또는 수정한다.
  5. 1~4단계를 반복하여 실패/성공의 모든 테스트 케이스를 작성한다.
  6. 개발된 코드들에 대해 모든 중복을 제거하며 리팩토링한다.

 

코딩할 때 좀 더 객체지향적으로 하는 법

- getter, setter사용을 지양하고, 객체에게 맡겨라.

- 객체에게 물어보라. 객체의 값을 직접 바꾸지 말고 

- 메서드를 쪼개고, 클래스를 쪼개라.

- 한 메서드에 오직 한 단계의 들여쓰기

- else 예약어를 쓰지 않는다.

- 모든 원시값과 문자열을 포장한다.

- 일급 콜렉션을 쓴다.

 

728x90
반응형