4주차 Metadata n Event

0. 배운 사항들

  • 인수테스트란?

    • 사용자에게 애플리케이션을 인도할 수 있는지 검증하는 절차 (기능 구현 확인)

      • 사용자 스토리를 검증하는 기능 테스트

      • 사용자 스토리로 테스트할 시나리오 지정

    • 이번 과정에서는 API 접점에서 검증하는 E2E 테스트입니다.

  • 인수테스트를 하는 이유

  • 테스트의 종류

    • 단위 테스트 - 구현한 부분, 단위를 검증

    • 통합 테스트 - 각 단위들이 유기적으로 잘 동작하는지 검증하는 테스트

    • E2E 테스트 - 요청과 응답 기준으로 API를 종단하는 테스트

    • API 테스트

    • 시나리오 테스트

  • RestAssured를 이용한 인수테스트 작성

1. [실습] 구현단계들

1단계 - Metadata

2단계 - SessionFactory

3단계 - Event

2. 배운 사항

3. 구현 사항들

  • 1단계 - 지하철 인수 테스트 (기능 스펙이 존재할 때)

  • 지하철역 인수 테스트 작성

  • PR: https://github.com/next-step/atdd-subway-map/pull/813

    • 주요 피드백 사항

      • 인수 테스트 가독성

      • 주석 부분에 대한 오류

      • Format 잘 안되어 있음

  • 2단계 - 지하철 노선 관리 (인수 조건이 존재 할 때)

  • 지하철 CRUD

  • PR: https://github.com/next-step/atdd-subway-map/pull/866

    • 주요 피드백사항

      • dto는 어느 layer에서든 사용 가능하게 구현하는 부분이 맞다

        • DTO는 가변으로 사용한다.

      • 도메인에서 Setter 같은 객체 메시지를 받는 interface 만들기

      • validation도 있으면 좋다

      • 인수 테스트 가독성

  • 3단계 - 지하철 구간 관리 (기능 스펙만 존재할때)

  • 지하철 노선에 구간을 등록하는 기능을 구현 (조건 + 에러 처리)

  • PR: https://github.com/next-step/atdd-subway-map/pull/961

    • 주요 피드백사항:

      • 기획자와 QA등을 위한 '에러를 표기한다' 를 구체적인 표현으로 표기

      • assertThat(stations).containsExactly(두번째지하철역이름, 첫째지하철역이름, 세번째지하철역이름); 같이 조금 더 구체적인 테스트 검증

      • 개행 컨벤션 및 주석 삭제

      • FirstAddSection 의 잘못된 사용을 우려해서 AddSection으로 리팩토링

Last updated