Skip to content

Latest commit

 

History

History
38 lines (28 loc) · 1.87 KB

chapter 9.md

File metadata and controls

38 lines (28 loc) · 1.87 KB

9장 단위 테스트

TDD법칙

  1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지않는다
  2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도만 단위 테스트를 작성한다
  3. 현재 실패하는 테스트를 통과할 정도만 실제 코드를 작성한다

단점

실제 코드와 맞먹을 정도로 방대한 테스트 코드가 만들어지며 이는 관리 문제를 야기한다

깨끗한 테스트 코드 만들기

가독성이 제일 중요하다

  • 명료성, 단순성, 풍부한 표현력이 필요하다 - 최소의 표현으로 많은 것을 나타내야 한다
  • 잡다한(테스트에 필요 없는) 코드는 없애자
  • BUILD-OPERATE-CHECK 패턴을 사용하자

image

테스트당 assert 하나

방향성

  • assert문이 하나면 결론이 하나라서 코드를 이해하기 쉽고 빠르다
  • 여러 개라면 쪼개서 하나씩으로 바꾸면 된다
  • 테스트 코드 속에 감춰진 일반적인 규칙이 보인다
  • 테스트 함수마다 한 개념만 테스트하라

이것은 테스트의 방향성일 뿐 절대적인 규칙은 아니다

  • assert문을 최소로 쓰라는 것이다

F.I.R.S.T.

  • Fast: 테스트가 느리면 자주 돌리지 않게 됨 → 초반에 문제를 고치지 못함

  • Independent: 의존하게 되면 연쇄 효과가 발생하게 됨 → 원인을 진단하기 어려움

  • Repeatable: 어떠한 환경에서도 반복 가능해야 함 → 같은 결과를 도출

  • Self-Validating: Bool 값으로 결과를 도출해야함. 그렇지 않으면 판단은 주관적이 되며, 수작업으로 결과를 평가해야함

  • Timely: TDD 법칙을 따라야 한다 → 실제 코드를 구현하기 전에 테스트 코드를 작성해야한다