개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
테스트 코드는 깨끗한 코드만큼이나 중요하다
테스트 함수마다 한 개념만 테스트 해라.
테스트는 유연성, 유지보수성, 재사용성을 제공한다.
TIL (Today I Learned) 날짜
2022.03.06
오늘 읽은 범위
9장. 단위 테스트
책에서 기억하고 싶은 내용을 써보세요.
우리들 대다수에게 단위 테스트란 자기 프로그램이 ‘돌아간다’는 사실만 확인하는 일회성 코드에 불과했다. 클래스와 메서드를 공들여 구현한 후 임시 코드를 급조해 테스트를 수행했는데, 대개는 간단한 드라이버 프로그램을 구현해 자신이 짠 프로그램을 수동으로 실행했다. (p.154)
TDD 법칙 세 가지
첫째 법칙: 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
둘째 법칙: 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스 트를 작성한다.
셋째 법칙: 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. (p.154)
문제는 실제 코드가 진화하면 테스트 코드도 변해야 한다는 데 있다. 그런데 테스트 코드가 지저분할 수록 변경하기 어려워진다. 테스트 코드가 복잡할수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸리기 십상이다. (p.154)
테스트는 유연성, 유지보수성, 재사용성을 제공한다
테스트 코드를 깨끗하게 유지하지 않으면 결국은 잃어버린다. 그리고 테스트 케이스가 없으면 실제 코드를 유연하게 만드는 버팀목도 사라진다. (p.157)
깨끗한 테스트 코드 -
깨끗한 테스트 코드를 만들려면? 세 가지가 필요하다. 가독성, 가독성, 가독성.
어쩌면 가독성은 실제 코드보다 테스트 코드에 더더욱 중요하다. 테스트 코드에서 가독성을 높이려면? 여느 코드와 마찬가지다. 명료성, 단순성, 풍부한 표현력이 필요하다. 테스트 코드는 최소의 표현으로 많은 것을 나타내야 한다. (p.158)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
테스트 코드는 깨끗한 코드만큼이나 주의하며 잘 작성해야 한다. 이것이 이번 장의 핵심인 것은 알겠다. 하지만 단위테스트를 들어본 적은 있지만 어떻게 작성하는지, 어떤 부분을 단위테스트하게 되는지는 잘 몰라 유독 이번 장을 이해하기 힘들어 아쉬웠다. 나중에 직접 테스트 도구들에 대해 잘 알아볼 수 있는 시간을 가질 수 있도록 해야겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
FISRT - Fast, Independent,Repeatable,Slef-Validating,Timely의 첫글자를 딴 테스트 도구
오늘 읽은 다른사람의 TIL
vora128님의 TIL (https://nomadcoders.co/community/thread/3397)