Community

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

← Go back
TIL Clean Code 9장. 단위테스트
#clean_code
2년 전
739

오늘 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