Community

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

← Go back
클린코드 #9 - 9장. 단위 테스트
#clean_code
2년 전
2,074
1

오늘 TIL 3줄 요약

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

  • 테스트 코드는 실제 코드 만큼이나 중요하다.

  • 테스트 함수 하나는 개념 하나만 테스트하라

TIL (Today I Learned) 날짜

2022.03.06

오늘 읽은 범위

9장. 단위테스트

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

TDD 법칙 세 가지

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

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

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

깨끗한 테스트 코드 유지하기

실제 코드를 변경해 기존 테스트 케이스가 실패하기 시작하면, 지저분한 코드로 인해, 실패하는 테스트 케이스를 점점 더 통과시키기 어려워진다. 그래서 테스트 코드는 계속해서 늘어나는 부담이 되버린다.

의도하지 않은 결함 수가 많아지면 개발자는 변경을 주저한다. 변경하면 득보다 해가 크다 생각해 더 이상 코드를 정리하지 않는다. 그러면서 코드가 망가지기 시작한다.

테스트 코드는 실제 코드 못지 않게 중요하다. 실제 코드 못지 않게 깨끗하게 짜야 한다.

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

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

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

깨끗한 테스트 코드 = 가독성

테스트 코드는 본론에 돌입해 진짜 필요한 자료 유형과 함수만 사용한다. 그러므로 코드를 읽는 사람은 온갖 잡다하고 세세한 코드에 주눅들고 헷갈릴 필요 없이 코드가 수항해는 기능을 재빨리 이해한다.

테스트 함수 하나는 개념 하나만 테스트하라

FIRST - Fast, Independent, Repeatable, Self-Validating, Timely

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

​TDD를 지키며 일 하면 사실상 실제 코드를 전부 테스트 해볼 수 있다. 그런데 문득 왜 사소한 것 까지 실제 사용자 테스트를 시켰는지에 대한 의문이 들었다. 예를들어, 버튼을 누르면 버튼상태가 바뀌어야하는 (예.팔로우) 같은 기능은 충분히 테스트 코드로 해볼 수 있는 것 아닌가?.. 어쨌던 효율적으로 일하는 데 불필요한 테스트 리스트를 받았을 때 무엇을 위한 테스트인지 혼란스러웠던 기억이....

테스트 코드를 만드는 것도 많은 공부가 필요하겠다는 생각이 들었다. 본인이 테스트 코드를 작성할 줄 모르는 주니어 개발자라면 얼마나 그 팀과 제품에 리소스 낭비와 리스크를 주고 있는지에 대해 생각하면서 공부를 꼭 하기를 바란다! 제발~!

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

단위테스트, 인수테스트, 통합테스트 각종 테스트 방법

https://tecoble.techcourse.co.kr/post/2021-05-25-unit-test-vs-integration-test-vs-acceptance-test/

오늘 읽은 다른사람의 TIL

https://nomadcoders.co/community/thread/3337

1 comment