오늘 내가 한 일 - TIL

노개북 클린코드(clean code) 2022.03.05~06

바구레 2022. 3. 6. 19:00

+ 코로나로 앓다가 살아났네요;;

오늘 읽은 범위

9장 단위테스트

 

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

  • 테스트 코드는 실제 코드 못지 않게 중요하다.
  • 테스트는 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트다. 실제 코드를 점검하는 자동화된 단위 테스트 슈트는 설계와 아키텍처를 최대한 깨끗하게 보존하는 열쇠다. 테스트 케이스가 있으면 변경이 쉬워지기 때문이다. 
  • 테스트 코드는 최소의 표현으로 많은 것을 나타내야 한다.  
  • 테스트 당 assert 문을 단 하나만 사용해야 한다. - 테스트 함수마다 한 개념만 테스트하라. 잡다한 개념을 연속으로 테스트하는 긴 함수는 피한다. 
  • 개념 당 assert 문 수를 최소로 줄여라, 테스트 함수 하나는 개념 하나만 테스트하라
  • F.I.R.S.T.
    • Fast : 빠르게. 테스트는 빨라야 한다.
    • Independent : 독립적으로. 각 테스트는 서로 의존하면 안 된다. 한 테스트가 다음 테스트가 실행될 환경을 준비해서는 안 된다. 
    • Repeatable : 반복가능하게. 테스트는 어떤 환경에서도 반복 가능해야 한다. 
    • Self-Validating : 자가검증하는. 테스트는 부울(bool) 값으로 결과를 내야 한다. 성공 아니면 실패다.
    • Timely : 적시에. 테스트는 적시에 작성해야 한다. 단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.
  • 테스트 코드는 어쩌면 실제 코드보다 더 중요할지도 모르겠다. 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존하고 강화하기 때문이다. 

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

개발일을 하면서 TDD가 중요하다! 라는 이야기는 정말 많이 들어봤다. 하지만 나는 한번도 테스트 코드를 작성해본적이 없기 때문에 항상 어떻게 작성이 되고 실행되는 것인지 궁금했다. 이번 장을 읽으면서 그동안 단어만 들어왔던 테스트 코드에 대해 어렴풋이 알게 되었지만 역시 실제로 사용해보고 부딪혀 보기 전까지는 정확하게 이해하기 어려울 것 같다. 하지만 이 장을 읽으면서 테스트 코드가 왜 중요하고 왜 작성되어야하는지 알 수 있었다. 나중에 내가 한단계 나아가서 개발을 하게 되어 테스트 코드를 맞닥뜨렸을 때 두려움 없이 적응 할 수 있지 않을까라는 생각을 했다. 

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • assert : 컴퓨터 프로그래밍에서 표명, 가정 설정문 또는 어시션은 프로그램 안에 추가하는 참, 거짓을 미리 가정하는 문이다. 개발자는 해당 문이 그 문의 장소에서 언제나 참이라고 간주한다. 런타임 중에 표명이 거짓으로 평가되면 표명 실패를 초리하며 이 상황에서는 일반적으로 실행이 중단된다. 

 


위키백과