개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
테스트 코드는 실제 코드 못지 않게 중요하다.
테스트 코드도 책임이다. 책임은 최소화 하는게 제일 좋다.
불필요한 컨텍스트를 줄이고 필요한 개념들에 대해서만 테스트를 진행하자.
테스트 코드는 지속적으로 깨끗하게 관리하자. 표현력을 높이고 간결하게 정리하자.
TIL (Today I Learned) 날짜
2022.05.08
오늘 읽은 범위
9장. 단위테스트
책에서 기억하고 싶은 내용을 써보세요.
테스트 코드는 실제 코드 못지 않게 중요하다.
테스트 함수마다 한 개념만 테스트하라
테스트 코드는 지속적으로 깨끗하게 관리하자. 표현력을 높이고 간결하게 정리하자.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
단위테스트는 중요하다. 그렇지만 단위 테스트란 무엇인지에 대해서 정의가 없는 상태로 단위테스트라는 챕터를 제공하는 것은 부적절한 것이 아닐까.
그냥 9장. 깨끗한 테스트 라는 이름이 가장 적절 했을 것 같은 챕터
다만 그럼에도 테스트에서 가장 필수적인 요소들에 대해서는 다 포함되어 있다.
테스트 자체도 하나의 책임이기 때문에 이해하기 쉬워야하며,
의존성이 없을수록 좋고
빠른 코드가 좋으며
좋은 코드를 유지하기 위해서 계속해서 보이스카우트 규칙을 지켜줘야한다.
FIRST 규칙
단위 테스트와 관련해서 새로운 용어들이 많고 혼동하기 쉬운 여러 개념들이 있다. 이 참에 다시금 정리해보자
테스트 슈트 (SUT, system under test) : 테스트를 하려는 대상
회귀 방지 : 기능은 고장인데 테스트가 통과라고 나오는 경우
리팩터링 내성 : 기능은 동작하는데 테스트가 실패하는 경우
(리팩터링을 제대로 했는데 테스트가 실패라고 나온다면 리팩터링 내성이 낮은 것. 보통 내부 구현에 의존적인 테스트에서 자주 발생한다.)
목 (Mock) : 테스트 대상의 의존성을 가짜로 만든 객체. 행위 기반 검증
verify().executeOneTime()
스텁 (stub) : 특정 상태를 가정해서 하드 코딩한 데이터. 상태 기반 검증에 주로 쓰임
when().doReturn() 형식
더미 (dummy) : 테스트 대상 의존성의 껍데기만 있는 객체. 테스트 대상의 의존성이긴 하지만 검증하려는 곳에서 쓰이지 않을때 보통 넣어줌
스파이 (Spy) : 목보다 구체적인 테스트 더블.
픽스처 (Fixture) : SUT를 실행하기 위해 해줘야 하는 모든 것. 준비 단계에 해당하는 모든 것
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
오늘 읽은 다른사람의 TIL