Community

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

← Go back
TIL-9
by leeq
#clean_code
2년 전
1,299

오늘 TIL 3줄 요약

  • 테스트는 유연성, 유지보수성, 재사용성을 제공한다.

  • Fast Independent, Repeatable, Self-validating, Timely

  • 테스트 코드가 방치되어 망가지면 실제 코드도 망가진다.

TIL (Today I Learned) 날짜

2022.03.06

오늘 읽은 범위

9장. 단위 테스트

(TIL-8)

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

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

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

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

  4. 테스트는 유연성, 유지보수성, 재사용성을 제공한다. - p157

  5. (테스트 코드는) 단순하고, 간결하고, 표현력이 풍부해야 하지만, 실제 코드만큼 효율적일 필요는 없다. - p161

  6. StringBuffer는 보기에 흉하다. - p164

  7. 개념당 assert 문 수를 최소로 줄여라. - p165

  8. 테스트 함수 하나는 개념 하나만 테스트하라. - p167

  9. FIRST: Fast, Independent, Repeatable, Self-validate, Timely - p167

  10. 테스트 코드가 방치되어 망가지면 실제 코드도 망가진다. - p168

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

이 장은 TDD의 규칙들과 그 필요성에 대해 기술하고 있다. 7장부터 (어쩌면 6장부터) 이어진 TDD 시리즈의 끝인 것 같다. 예시로 든 팀의 일화를 읽고 나니 위의 짤이 생각났다. 테스트 코드는 IT 팀과 같다. 문제가 발생하지 않으면 테스트 코드의 필요성을 못 느끼고, 문제가 발생하면 테스트 코드의 탓을 한다.

최근 테스트 자동화에 대해 익히고 있었다. React로 치자면 Jest 같은 라이브러리 사용법에 대해 익히면서도, 작성 노하우에 대해 무지했다. 이 장을 읽고 나니 흐릿했던 것들이 점차 명확해졌다. 새삼 하나하나 수동으로 테스팅했던 과거들이 미련하게 느껴진다. 테스트는 하나의 개념만! 가독성 있게!

TDD가 해외에서 많이 도입된다는 소식은 들어왔지만, 항상 마감에 쫓기며 구현조차 버거운 프로젝트를 진행했었다. 최근에야 늦게나마 TDD에 흥미를 느껴 공부하고 있다. 실제로 TDD를 도입한 팀에서 프로젝트를 진행하는 경험을 쌓고 싶다.

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

읽다 보니, 실제 구동 환경과 테스트 환경이 다를 때 어떻게 테스트를 진행해야 하는지 궁금해졌다. 예를 들어, 프론트 엔드에서 실제 base url이 테스트 환경에서의 그것과 달라서 동일한 테스트가 불가하다거나, 환경이 판이하게 달라 애플리케이션들이 정상 작동되지 않는 경우들 말이다. 관련 내용을 더 알아보아야겠다.

오늘 읽은 다른사람의 TIL

charminggw님의 TIL

실제 경험에서 우러나오는 TDD의 필요성과 깔끔한 정리가 눈에 띄었다. 30초 주기에 대해 가지신 의문은 공감되었다. 아무리 그래도 30초는 너무 짧은 것 아닌가...?! 적용해본 경험이 없으니 잘 이해가 되지 않는다. 실제 적용 사례들을 찾아보아야 겠다.