Nest E2E Test App

Nest E2E 테스트 구조

Nest E2E 테스트는 실제 HTTP 경계를 통과하되 DB fixture, 인증 토큰, 앱 부트스트랩, teardown을 격리해야 신뢰도가 높습니다.

01

TestingModule 구성

실제 AppModule 또는 테스트 전용 override provider로 앱을 구성합니다.

bootstrap
02

DB 준비

테스트마다 필요한 fixture를 넣고 이전 테스트 데이터가 섞이지 않게 초기화합니다.

fixture
03

인증 준비

테스트 사용자와 JWT 또는 세션 쿠키를 만들어 보호 route를 실제처럼 호출합니다.

auth
04

Supertest 호출

HTTP 메서드, path, body, header를 실제 클라이언트처럼 보내고 응답을 검증합니다.

request
05

Teardown

앱 인스턴스, DB 연결, queue 연결을 닫아 다음 테스트와 CI를 막지 않습니다.

cleanup
Transaction
빠른 롤백 각 테스트를 트랜잭션으로 감싸 되돌리면 빠르지만 비동기 작업과 충돌할 수 있습니다.
DB 지원 필요
Truncate
명확한 초기화 테이블을 비우고 fixture를 다시 넣어 테스트 간 의존성을 줄입니다.
속도 비용
Test Container
환경 재현성 실제 DB 버전과 확장을 맞추기 쉬우나 CI 시간이 늘어날 수 있습니다.
통합 신뢰도 높음

E2E 품질 기준

실제 경계 Controller를 직접 호출하지 말고 HTTP 요청으로 pipe, guard, filter까지 통과시킵니다.
데이터 독립성 테스트 실행 순서가 바뀌어도 결과가 같아야 합니다.
연결 종료 앱과 DB 연결을 닫지 않으면 CI가 종료되지 않거나 다음 테스트가 오염됩니다.