Devin.KR

HTTP 계약과 API 자동 검증

실습 앱의 응답 코드·본문·권한·저장 결과를 함께 검증합니다.

진도 0%

레슨

  1. 요청·응답과 오류 위치

    연결 실패·시간 초과·HTTP 오류를 구분합니다.

  2. 성공 코드 뒤의 계약 위반

    상태 코드 외의 본문·권한 결과를 검증합니다.

  3. 가입·로그인 API 테스트

    성공·중복·오류·미인증·타인 접근을 자동 검증합니다.

  4. 요청 뒤 실제 데이터 확인

    응답의 성공과 DB 변경의 일치를 확인합니다.

HTTP 계약과 API 자동 검증 미션

m04 solution의 원본을 해시로 보존하고 api-app을 추가합니다. 기본 검사는 포트 없이 MockMvc→실제 컨트롤러→H2의 응답을 m04 검증기에 연결합니다. curl·실제 fetch는 별도 외부 실행으로 확인합니다.

요구사항

  • m04 검증기를 재사용해 api/에 가입·로그인·프로필 API 테스트를 추가합니다.
  • 200 응답이지만 잘못된 본문과 타인 프로필 조회를 검출합니다.
  • 제공 Java 통합 테스트에 성공 가입의 1행 증가와 중복·권한 거절의 무변경 검증을 완성합니다.

완료 기준

  • 기존 checks 회귀 31개와 새 API 응답 교환 14개, Java 통합 7개(InProcessApiTest 1개·StorageTest 6개)를 실행하여 실패·오류·skip 0을 확인합니다.
  • 200의 숫자 nickname·타인 조회 허용은 validateHttp의 AssertionError로 검출됩니다.
  • 가입은 SQL 1행 증가·입력값·기존 행 보존, 중복·익명·타인 수정 거절은 관찰한 email·nickname 전체 스냅샷 무변경을 확인합니다.
  • rejected-write·forbidden-write 저장 결함을 SQL 스냅샷으로 검출합니다.
  • 기본 Maven에는 네트워크 실행 테스트를 포함하지 않습니다. 외부 환경에서 api-app의 ./mvnw -o -q -Pnetwork -Dtest=ExecutionTest test로 curl·fetch를 별도 확인하며 기본 결과와 구분합니다.
bash check.sh
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 기대 결과를 합의한 요구사항과 연결해 설명합니다.
  • 실패 증거와 제외한 범위의 근거를 다른 사람이 재현할 수 있게 기록합니다.
  • MockMvc·H2 통합 검증과 실제 네트워크 실행 대기, UI·세션 만료·동시성·secret 열 미검증 범위를 구분합니다.