테스트 주도 개발 (켄트 벡)

Do_Doolly·2023년 1월 24일
0

책책책

목록 보기
5/10
post-thumbnail
post-custom-banner

🚥 리뷰 전

최근에 다니고 있는 회사에서 TDD를 적용할 기회가 생겼다. TDD를 말로만 들어봤지 외주 업무 할 때나, 토이 프로젝트 진행할 때는 써 본 적이 없어서 난감했는데, 마침 같이 일하는 직원으로부터 책을 추천받았다.

회사에서 책에 대한 지원은 아낌없이 해준다해서, 냉큼 주문하고 읽어보았다! 😏

근데 읽어도 아직 TDD를 구현하기는 어렵다는 생각이 든다 허허


📚 본격 리뷰

1. TDD 수련법

  • 테스트 주도 개발을 잘하려면 훈련과 경험이 필요
  • 간단하고 쉬운 문제부터 TDD를 시도
  • 중복 제거에 신경써라

2. 화폐 예제

  • 서로 다른 화폐에 대해 환율을 따지고, 유효성을 검사하는 TDD 개발 리듬 파악
  • 컴파일을 성공적으로 하는데 먼저 집중
  • 모든 테스트를 실행하고 추가한 테스트 중 실패하는 것이 있는지 확인
  • 실패하는 부분에서 코드를 일부 수정
  • 테스트가 성공적으로 되는지 확인
  • 중복 제거와 같은 리팩토링 실행

3. xUnit 예시

  • 오픈소스 테스트 프레임워크 (자바스크립트에서는 주로 Jest, Mocha, Should가 있다)
  • setUp과 tearDown을 활용한 테스트 예제

4. 테스트 주도 개발의 패턴

  • 테스팅 패턴
    • 작은 단위의 자식 테스트 생성
    • 모의 객체 방식
    • 예외 발생
  • 초록 막대 패턴
    • 상수값(올바른 해답)을 반환하는 함수 생성
    • 삼각측량
  • xUnit 패턴
  • 리팩토링

➰ 리뷰 끝

자바와 파이썬으로 된 예시가 많아서 현재 내가 사용중인 자바스크립트에서 테스트하기에는 어려운 부분이 있다. 그래도 TDD에 대한 접근법에 대해서만 보면 자세히 설명해주는 것 같다.

모든 내용들을 완벽히 이해하기는 어렵지만, 일단 핵심적인 내용만 뽑아보자면 간단하게 테스트를 구현해보고 (컴파일이 가능한 것 우선) 코드를 수정해가면서 리팩토링 하는 것이다.

테스트 주도 개발이라는게 단순히 내가 만든 코드를 테스트해서 통과하는게 중요한게 아니라, 모든 테스트를 원활히 통과하도록 코드의 패턴을 일관성있게 작성하는데 더 집중하는 것 같다.

링크 : 테스트 주도 개발 (켄트 벡)

profile
생각하면 복잡하니까 일단 해보자
post-custom-banner

0개의 댓글