Test Code ‐ 테스트 코드는 문서다. - dnwls16071/Backend_Study_TIL GitHub Wiki

📚 문서

  • 프로덕션 기능을 설명하는 테스트 코드 문서
  • 다양한 테스트 케이스를 통해 프로덕션 코드를 이해하는 시각과 관점을 보완
  • 어느 한 사람이 과거에 경험했던 고민의 결과물을 팀 차원으로 승격시켜서 모두의 자산으로 공유할 수 있다.

📚 DisplayName은 섬세하게 짓자

😞 Bad : 음료 1개 추가 테스트 😊 Good : 음료를 1개 추가할 수 있다.

  • 명사의 나열보다 문장으로

😞 Bad : 특정 시간 이전에 주문을 생성하면 실패한다. 😊 Good : 영업 시작 시간 이전에는 주문을 생성할 수 없다.

  • 테스트 행위에 대한 결과까지 기술
  • 도메인 용어를 사용하여 한층 추상화된 내용을 담는다.(Ex. 영업 시작 시간)
  • 테스트의 현상을 중점으로 기술하지 말자.(Ex. 실패한다 / 성공한다)

📚 BDD 스타일로 작성하자

  • BDD(Behavior Driven Development)

    • TDD에서 파생된 개발 방법
    • 함수 단위 테스트에 집중하기보다 시나리오에 기반한 테스트 케이스 자체에 집중하여 테스트한다.
    • 개발자가 아닌 사람이 봐도 이해할 수 있을 정도의 추상화 수준을 권장한다.
  • Given / When / Then

    • Given : 시나리오 진행에 필요한 모든 준비 과정
    • When : 시나리오 행동 진행
    • Then : 시나리오 진행에 대한 결과 명시, 검증