본문 바로가기
공부내용

TIL_클린코드_8장_단위 테스트

by 바나나하나 2022. 5. 8.
반응형

TIL (Today I Learned)

2022.05.08

오늘 읽은 범위

8장. 단위 테스트

책에서 기억하고 싶은 내용

테스트 코드는 실제 코드 못지 않게 중요하다.

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

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

어쩌면 가독성은 실제 코드보다 테스트 코드에 더더욱 중요하다. -158페이지

단지 assert 문 개수는 최대한 줄여야 좋다는 생각이다. -165페이지

테스트 함수마다 한 개념만 테스트하라는 규칙이 더 낫겠다. 이것저것 잡다한 개념을 연속으로 테스트하는 긴 함수는 피한다. - 166페이지

한 테스트 함수에서 여러 개념을 테스트한다는 사실이 문제다. 그러므로 가장 좋은 규칙은 "개념 당 assert 문 수를 최소로 줄여라"와 "테스트 함수 하나는 개념 하나만 테스트하라"라 하겠다. -167페이지

깨끗한 테스트는 다음 다섯 가지 규칙을 따르는데, 각 규칙에서 첫 글자를 따오면 FIRST가 된다.

Fast: 테스트는 빨라야 한다. 테스트가 느리면 자주 돌릴 엄두를 못 낸다. 자주 돌리지 않으면 초반에 문제를 찾아내 고치지 못한다.

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

Repeatable: 테스트는 어떤 환경에서도 반복 가능해야 한다.

Self-Validating: 테스트는 부울bool 값으로 결과를 내야 한다. 성공 아니면 실패다.

Timely: 테스트는 적시에 작성해야 한다.

 

 

 

오늘 읽은 소감은? 떠오르는 생각

요즘 nodejs로 집에서 웹서버를 직접 구현하면서 여러 환경설정을 하면서 느낀 것은, 로직을 생각해내고 코드를 짜는 것보다 이런 환경을 구성해내는 것이 더 어렵다는 생각을 많이 했다. 코드가 돌아가는 환경을 만들어내는 것이 쉽지 않았다. 환경설정을 하지 않으면 아무리 소스코드를 짜더라도 이게 돌아가는지 확인하기가 불가능하기 때문에 환경설정은 무엇보다도 먼저 하게 된다.

오늘 단위 테스트 챕터를 읽으면서 어떤면에서는 단위 테스트도 환경설정과 비슷하다는 생각을 했다. 언제든지 마음 편하게 내 소스코드를 변경할 수 있는 환경을 설정하는 것이 단위 테스트를 하는 것이라고 보면 될 것 같다. 하나 하나 테스트를 하지 않으면 전체적으로 잘 돌아갈 것이라는 확신을 갖기가 어렵다. 지금까지 일일이 하나씩 변경하면서 전체적으로 잘 돌아가는지만 확인했던 것에서 벗어나서 nodejs 테스트 코드를 작성하는 방법을 배우고 내가 테스트 코드 또한 깨끗하게 작성해서 유연성, 유지보수성, 재사용성을 키울 수 있도록 해야겠다.

반응형

댓글