[워밍업 클럽 2기 - Clean Code & Test Code] 3주차 발자국

워밍업 클럽 2기: Clean Code & Test Code의 3주차 발자국 작성입니다.

2주차 발자국 보러가기

<br>

학습 내용 복습

Q. 자동화된 테스트가 필요한 이유는?

  • 값을 직접 출력해서 확인하는 수동 테스트는 사람이 개입해서 확인해야 한다. 검증을 사람이 하기 때문에, 값을 확인하는 과정에서 휴먼 에러가 발생할 확률이 높다.

  • 자동화된 테스트를 도입하면 검증을 기계에 맡길 수 있기 때문에 사람이 직접 검증하는 것 보다 신뢰할 수 있다.

  • 사람이 일일이 확인하는 것보다 빠르다.

 

Q. 단위(Unit) 테스트란?

  • 단위 테스트(Unit Test)라는 것은 코드의 가장 작은 기능적 단위를 독립적으로 검증하는 테스트를 일컫는다.

  • 여기서 작은 기능적 단위(Unit)는 보통 내가 작성한 클래스 또는 메서드를 의미한다.

Q. 테스트할 때 신경 써야하는 부분들은?

  • 예외 케이스를 고민한다

  • 경계값에 대한 테스트는 중요하다(예시: 범위, 구간, 날짜, 등의 경계값에 대한 테스트)

 

Q. TDD(테스트 주도 개발)란?

  • 프로덕션 코드보다 테스트 코드를 먼저 작성해서 테스트가 코드의 구현 과정을 주도하도록 하는 개발 방법론

  • Red, Green, Blue의 3단계 과정으로 이루어진다

  • Red

    • 제일 먼저 실패하는 테스트 코드를 작성한다

    • 이때 테스트 코드는 컴파일 조차 안돼도 괜찮다

  • Green

    • 테스트를 통과하도록 위해 실제(프로덕션) 코드를 작성한다

    • 이때 작성하는 코드는 테스트를 통과할 정도로만 최소한의 코드를 작성하도록 한다

    • 최대한 빠르게 작성하려고 노력한다

  • Blue

    • 코드를 리팩토링한다

    • 설계나 구현을 개선한다

    • 이때 테스트의 통과 상태는 유지되어야 한다

 

Q. 좋은 Display Name(테스트 네이밍)은?

  • 행위에 대한 결과까지 담는다

  • 도메인 용어를 사용한다

  • 코드의 단위를 검증하는 것이 아닌 동작(기능)의 단위를 검증하려고 노력한다

 

🤔 회고

  • 중간에 1, 2주차에서 활용했던 StudyCafe 애플리케이션에 대한 단위 테스트를 작성해보는 미션을 수행 했지만, 잘 작성하지 못했던 것 같다.

  • 코드를 따라 쳐보면서 학습 해야겠다

 

 

🔍 참고

댓글을 작성해보세요.

채널톡 아이콘