E2E data boundary

DB가 있는 E2E는 데이터 격리가 품질을 결정한다

실제 리포지토리와 쿼리는 살리되, 테스트 데이터와 외부 서비스는 실행마다 같은 상태로 되돌릴 수 있어야 한다.

격리 전략 세 가지

database + override
1

Testcontainers

실행 때마다 임시 DB를 띄워 운영 DB와 물리적으로 분리한다.

2

전용 test DB

테스트용 schema와 계정을 사용하고 seed, truncate를 자동화한다.

3

트랜잭션 rollback

케이스마다 변경을 되돌려 같은 시작 상태를 유지한다.

실제로 둔다

DB, repository, module wiring

쿼리, 트랜잭션, entity mapping이 Nest 모듈 안에서 함께 작동하는지 확인한다.

목으로 고정한다

Email, SMS, 결제, 외부 API

비용과 지연이 큰 경계는 overrideProvider로 대체해 테스트 결과를 흔들지 않게 한다.

점검 축
좋은 상태
위험 신호
환경 변수
test.env로 분리
운영 DB URL 재사용
테스트 데이터
시드와 정리가 한 묶음
실행 순서에 따라 실패
외부 서비스
provider override 명시
네트워크 상태에 의존