Community

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

← Go back
[TIL / Clean Code] 9장. 단위 테스트
#clean_code
2년 전
840
1

오늘 TIL 3줄 요약

  • 테스트 코드는 실제 코드만큼이나 프로젝트 건강에 중요하다.

  • 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존하고 강화한다.

  • 테스트 코드는 지속적으로 깨끗하게 관리하자. 표현력을 높이고 간결하게 정리하자.

TIL (Today I Learned) 날짜

2022.03.05 ~ 2022.03.06

오늘 읽은 범위

9장. 단위 테스트

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

  • TDD 법칙 세 가지

    • (TDD가 실제 코드를 짜기 전에 단위 테스트부터 짜라고 요구한다는 사실)

    • 1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.

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

    • 3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

  • 실제 코드와 맞먹을 정도로 방대한 테스트 코드는 심각한 관리 문제를 유발하기도 한다.(155p)

  • 문제는 실제 코드가 진화하면 테스트 코드도 변해야 한다는 데 있다. 그런데 테스트 코드가 지저분할수록 변경하기 어려워진다. 테스트 코드가 복잡할수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸리기 십상이다.(156p)

  • 테스트 코드는 실제 코드 못지 않게 중요하다.(157p)

  • 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트다. 이유는 단순하다. 테스트 케이스가 있으면 변경이 두렵지 않으니까!(157p)

  • 깨끗한 테스트 코드

    • 어쩌면 가독성은 실제 코드보다 테스트 코드에 더더욱 중요하다.(158p)

  • 테스트 함수마다 한 개념만 테스트하라(166p)

  • F.I.R.S.T

    • 빠르게(false) : 테스트는 빨라야 한다. 테스트는 빨리 돌아야 한다는 말이다.

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

    • 반복가능하게(repeatable) : 테스트는 어떤 환경에서도 반복 가능해야 한다.

    • 자가검증하는(self-validating) : 테스트는 부울(bool) 값으로 결과를 내야 한다. 성공 아니면 실패다. 통과 여부를 알려고 로그 파일을 읽게 만들어서는 안 된다.(중략) 테스트가 스스로 성공과 실패를 가늠하지 않는다면 판단은 주관적이 되며 지루한 수작업 평가가 필요하게 된다.

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

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

  • 낯설기만 했던 TDD에 대한 필요성을 깨닫게 되었다. 그리고 아직은 익숙하지 않으니 테스트 코드가 적용된 많은 코드를 보고싶다는 생각이 들었다. 많은 것을 보고 느끼고 내 것으로 만들며 공부하는 것이 가장 중요한 것 같다.

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

  • 도메인에 특화된 언어(DSL)

  • TEMPLATE METHOD 패턴

  • BUILD-OPERATE-CHECK 패턴

  • 기회가 된다면 디자인 패턴에 대해서 공부해보고 싶다..!

오늘 읽은 다른사람의 TIL

1 comment