클린코드

[DAY 15] 클린 코드 TIL - 9장. 단위 테스트

lado 2022. 2. 7. 23:40

🔖 오늘 읽은 범위 : 9장, 단위 테스트 (p.158 ~ p.169)


😀 책에서 기억하고 싶은 내용

  • 테스트 코드에서 가독성을 높이려면, 명료성, 단순성, 풍부한 표현력이 필요하다.

  • 테스트 코드는 최소의 표현으로 많은 것을 나타내야 한다.

  • 테스트 API 코드에 적용하는 표준은 실제 코드에 적용하는 표준과 다르다.

    • 단순하고, 간결하고, 표현력이 풍부해야 하지만, 실제 코드만큼 효율적일 필요는 없다.
  • StringBuffer를 피해라.

  • assert문 개수를 줄여라.

  • 테스트 함수마다 한 개념만 테스트하라.

  • F.I.R.S.T 규칙

    • Fast: 테스트는 빨라야 한다. 테스트가 느리면 자주 돌릴 엄두를 못 낸다.
    • Independent: 각 테스트는 서로 의존하면 안 된다. 각 테스트는 독립적으로, 그리고 어떤 순서로 실행해도 괜찮아야 한다.
    • Repeatable: 테스트는 어떤 환경에서도 반복 가능해야 한다.
    • Self-Validating: 테스트는 bool 값으로 결과를 내야 한다.
    • Timely: 단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.
  • 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존하고 강화한다.

  • 테스트 API를 구현해 도메인 특화 언어Domain Specific Language를 만들자.


🤔 오늘 읽은 소감은?

  • 아직 테스트 코드를 작성해 본 경험이 있어서 완전히 이해되지는 않았지만 빠른 시일 내에 테스트 코드를 도전해봐야겠다는 생각이 들었다.
  • 실제 코드를 작성하기 전에 테스트 코드를 작성하라는 부분이 신기했다.
  • 그동안 의존성이 높은 코드를 작성해왔던 것 같아서 반성했다.

🧐 궁금한 내용이 있거나, 잘 이해되지 않는 내용

  • 도메인 특화 언어라는 게 무엇을 뜻하는지 잘 모르겠다.
  • assert문은 어떤 기능을 하는 함수일까?

📌 소감 3줄 요약

  • 테스트 함수마다 한 개념만 테스트하라.
  • 각 테스트는 독립적으로, 그리고 어떤 순서로 실행해도 괜찮아야 한다.
  • 단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.