[단위 테스트의 기술] 2장 : 첫 번째 단위 테스트

구범모·2025년 1월 8일
0

이 글은 단위테스트의 기술을 읽고 정리한 글입니다. 개인적으로 도움이 되었던 장을 정리하여 업로드합니다.

단위 테스트의 유지보수성을 보다 견고하게 만들기 위해서는,
메시지 내용이 바뀌었을 때만 테스트 결과가 바뀌어야 한다.
예시로, 입력값에서 공백이 하나 들어가서 추가된다거나 하는 정도는 테스트가 통과되어야 한다.

메시지 내용이 완전 똑같지는 않지만, 의미는 여전히 똑같기 때문이다.

AAA 패턴

  • 준비(Arrange) - 실행(Act) - 검증(Assert)에 해당하는 패턴.

USE 전략

  • 테스트 이름으로 하여금, 테스트 코드의 목적을 알아차릴 수 있도록 하는 네이밍 전략
    • 테스트 하려는 대상(Unit)
    • 입력 값이나 상황에 대한 설명(Senario)
    • 기댓값이나 결과에 대한 설명(Expectation)
    • 위의 3가지를 테스트 이름에 반영

BeforeEach()의 단점과 이를 커버하는 방법

  • BeforeEach는 코드 중복을 해결할 수 있지만, 실제 테스트코드에서 BeforeEach에서
    • 객체가 어떻게 초기화 되는지
    • 객체가 언제 초기화 되는지
    • 어떤 값으로 초기화 되는지
  • 보이지 않으므로, 이해하려면 BeforeEach 함수를 보아야만 한다.
  • 이러한 현상을 스크롤 피로감이라고 부른다.
  • 해결 : 팩토리 함수 사용
    • 팩토리 함수를 사용함으로써, 파라미터로 넘기는 값을 객체 초기화에 사용하는 것을 유추할 수 있으므로, 스크롤 피로감이 줄어듦.
    • 객체가 언제 초기화 되는지도 파악 가능.
    • 하지만 여전히, 객체가 어떻게 생성되는지 보려면 직접 팩토리 함수를 조회해야 함
      • 책에서는 테스트 코드 내에서 팩토리 함수를 작성하지만
      • 내 생각에는, 별도의 Test fixture 클래스를 만들어서 팩토리 함수를 만든다면, 해당 클래스 파일을 조회하면 되므로 스크롤 피로감이 사라질 것임.

https://product.kyobobook.co.kr/detail/S000214965261

profile
우상향 하는 개발자

0개의 댓글