NEST E2E

E2E 테스트는 HTTP 경계에서 실제 앱 흐름을 검증한다

단위 테스트와 달리 AppModule을 로드하고 Nest 애플리케이션을 초기화한 뒤 Supertest 요청으로 라우팅, pipe, guard, service, persistence 연결을 함께 확인한다.

01 module TestingModule 구성

AppModule을 가져오고 필요한 외부 provider만 override한다.

02 app app.init()

실제 라우트와 전역 pipe, guard, interceptor를 준비한다.

03 request HTTP 요청 실행

controller method가 아니라 endpoint로 요청을 보낸다.

04 assert 응답과 상태 검증

status, body, DB 변화, mock 호출, app.close를 함께 챙긴다.

실제로 둘 것 HTTP 라우팅과 Nest 파이프라인

사용자 요청이 앱 내부 경계를 통과하는지 확인한다.

대체할 것 비용 큰 외부 서비스

메일, 결제, SMS는 계약을 유지한 mock으로 바꾼다.

격리할 것 테스트 데이터와 연결

seed, cleanup, app.close가 빠지면 순서 의존이 생긴다.