산 넘어 산 개발일지

Clean Code - 단위 테스트 본문

Study/CleanCode

Clean Code - 단위 테스트

Mountain96 2021. 3. 3. 13:14

TDD는 이미 자주 사용하는 개발 방식이라고 한다.

그만큼 그 가치를 사람들에게 인정 받았고, 개발자라면 항상 TDD로 개발하지는 않더라도 한 번쯤은 사용해봐야 한다고 생각한다.

그러나 Clean Code책에서 다룬 TDD 내용은 극소수에 불과했다.

TDD를 따로 사용한 적이 없어 코드 리뷰는 생략했다.

올해 여름에 TDD책을 읽고 따로 정리를 할 예정이다.


 

포인트

  1. TDD 법칙
    1. 실패하는 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
    2. 컴파일은 통과하면서 실행은 실패하는 정도로만 작성한다.
    3. 실제 코드는 현재 테스트를 통과할 정도로만 작성한다.
  2. 장점
    1. 실제 코드를 변경할 때 버그에 대한 두려움을 없애주므로 더 자유롭고 유연한 재사용성을 보장한다.
  3. 방식
    1. given-when-then 형식
      • given : 테스트에 필요한 변수나 환경설정
      • when : 상황 발생
      • then : 테스트
    2. TEMPLATE METHOD 패턴(GOF)
      • given, when 부분을 부모 클래스로, then을 그 밑의 자식 클래스로 두면 함수간에 중복을 최대한 없앨 수 있다.
    3. 테스트 함수 당 개념 하나
      • 테스트 함수 하나는 하나의 개념만 테스트하며, assert문은 최소로 사용하는 것이 좋다.
  4. FIRST
    1. Fast
      • 테스트는 빨리 돌아야 한다.
    2. Independent
      • 테스트함수끼리 의존하면 안된다.
    3. Repeatable
      • 테스트는 어떤 환경에서도 반복가능해야 한다.
    4. Self-Validating
      • 테스트 결과는 bool값을 리턴하여 개발자가 아닌 함수 자체가 테스트의 통과/실패 여부를 결정해야 한다.
    5. Timely
      • 테스트는 실제 코드 구현 직전에 구현해야 한다.

느낀점

TDD는 책이 따로 나올 정도로 중요하며 그 내용이 많다.

여기서는 빙산의 일각만 볼 수 있었다.

여름방학때 TDD책을 읽고 TDD를 사용하여 프로젝트를 하나 진행해봐야겠다.

'Study > CleanCode' 카테고리의 다른 글

Clean Code - 시스템  (0) 2021.03.10
Clean Code - 클래스  (0) 2021.03.04
Clean Code - 경계  (0) 2021.03.01
Clean Code - 객체와 자료구조  (0) 2021.02.21
Clean Code - 형식 맞추기  (0) 2021.02.19
Comments