Community

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

← Go back
[CleanCode] 9장. 단위 테스트
#clean_code
2년 전
586

오늘 TIL 3줄 요약

  • TDD 첫째 법칙 - 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.

  • TDD 둘째 법칙 - 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.

  • TDD 셋째 법칙 - 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

TIL (Today I Learned) 날짜

2022. 05. 09

오늘 읽은 범위

9장. 단위 테스트

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

  • 테스트 코드가 복잡할수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸리기 십상이다.

  • 테스트 슈트가 없으면 개발자는 자신이 수정한 코드가 제대로 도는지 확인할 방법이 없다. 테스트 슈트가 없으면 시스템 이쪽을 수정해도 저쪽이 안전하다는 사실을 검증하지 못한다. ( ... ) 의도하지 않은 결함 수가 많아지면 개발자는 변경을 주저한다. 변경하면 득보다 해가 크다 생각해 더 이상 코드를 정리하지 않는다. 그러면서 코드가 망가지기 시작한다.

  • 테스트 코드는 실제 코드 못지 않게 중요하다. 테스트 코드는 이류 시민이 아니다. 테스트 코드는 사고와 설계와 주의가 필요하다.

  • 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위테스트다.

  • 테스트 케이스가 없다면 모든 변경이 잠정적인 버그다.

  • 깨끗한 테스트 코드를 만들려면? 세 가지가 필요하다. 가독성, 가독성, 가독성.

  • F.I.R.S.T

    • Fast - 테스트는 빨라야 한다. 테스트가 느림녀 자주 돌릴 엄두를 못 낸다.

    • Independent - 각 테스트는 서로 의존하면 안 된다. 각 테스트는 독립적으로 그리고 어떤 순서로 실행해도 괜찮아야 한다.

    • Respeatable - 테스트는 어떤 환경에서도 반복 가능해야 한다. 실제 환경, QA환경, 버스를 타고 집으로 가는 길에 사용하는 노트북 환경에서도 실행할 수 있어야 한다.

    • Self-Validating - 테스트는 bool값으로 결과를 내야 한다. 성공 아니면 실패다.

    • Timely - 테스트는 적시에 작성해야 한다. 단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.

  • 테스트 코드는 실제 코드만큼이나 프로젝트 건강에 중요하다. 어쩌면 실제 코드보다 더 중요할지도 모르겠다. 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보전하고 강화하기 때문이다. 테스트 코드가 방치되어 ㅁ아가지면 실제코드도 망가진다. 테스트 코드를 깨끗하게 유지하자.

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

부끄럽게도, 단위테스트 코드를 작성해본적이 없다. 아직 TDD에 대해 공부한적이 없다.

요즘에 들어 필요성을 느껴 몇 번 들어본적이 있지만.. 테스트 코드의 필요성을 느끼고, 이 기회로 공부를 시작해야함을 느꼈다.. 부끄럽습니다.