Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
클린코드 9장 단위테스트
#clean_code
2년 전
1,207
1

TIL (Today I Learned) 날짜

2022. 03. 05

오늘 읽은 범위

9장. 단위테스트

책에서 기억하고 싶은 내용을 써보세요.

  • TDD 법칙 세 가지

    1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.

    2. 컴파일은 실패하지 않으면서 실행히 실패하는 정도로만 단위 테스트를 작성한다.

    3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

  • 깨끗한 테스트 코드 유지하기 실제 코드가 진화하면 테스트 코드도 변해야 한다 실제 코드를 변경해 기존 테스트 케이스가 실패하기 시작하면, 지저분한 코드로 인해, 실패하는 테스트 케이스를 점점 더 통과시키기 어려워진다. 테스트 코드는 실제 코드 못지 않게 중요하다. 테스트는 유연성, 유지보수성, 재사용성을 제공한다. 테스트 케이스가 있으면 변경이 두렵지 않으니까! 테스트 케이스가 없다면 모든 변경이 잠정적인 버그다.

  • 깨끗한 테스트 코드 가독성이 중요

  • 이중 표준 실제 환경에서는 절대로 안 되지만 테스트 환경에서는 전혀 문제없는 방식이 있다. 대개 메모리나 CPU 효율과 관련 있는 경우다. 코드의 깨끗함과는 철저히 무관하다.

  • 테스트 당 assert 하나 테스트 함수마다 한 개념만 테스트하라

  • FIRST 깨끗한 테스트는 다음 다섯 가지 규칙을 따름

    1. 빠르게(Fast)

      테스트는 빨라야 한다.

    2. 독립적으로(Independent)

      각 테스트는 서로 의존하면 안된다. 어떤 순서로 실행해도 괜찮아야 한다.

    3. 반복가능하게(Repeatable)

      어떤 환경에서도 실행할 수 있어야 한다.

    4. 자가검증하는(Self-Validating)

      bool값으로 결과를 내야 한다. 성공 아니면 실패다.

    5. 적시에(Timely)

      단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 현재 내가 속해있는 집단은 테스트코드를 거의 작성하지 않는다. 하지만 필요하고 중요하다는건 잘 알겠다. 시간이 나면 혼자서라도 작성해보고 개인 프로젝트를 할 때에는 TDD방식으로 해봐야겠다.

새롭게 배운 개념

  • BUILD-OPERATE-CHECK 패턴

  • TEMPLATE METHOD 패턴

디자인 패턴들에 대해 은근 많이 나온다

1 comment