beforeAll 준비
테스트 DB나 컨테이너를 띄우고 AppModule을 컴파일한다.
데이터베이스는 실제 연결에 가깝게 두고, 이메일 같은 외부 서비스는 `overrideProvider()`로 고정하면 요청 흐름을 안정적으로 검증할 수 있다.
테스트 DB나 컨테이너를 띄우고 AppModule을 컴파일한다.
제어하기 어려운 EmailService는 목으로 바꿔 외부 호출을 막는다.
Supertest가 실제 HTTP 서버에 요청하고 상태 코드와 본문을 확인한다.
테이블 초기화, 목 호출 기록 삭제, `app.close()`로 리소스를 닫는다.
쿼리, 트랜잭션, 모듈 wiring이 함께 작동하는지 확인한다.
비용, 지연, 네트워크 실패가 테스트 결과를 흔들지 않게 한다.
각 테스트가 같은 시작 상태를 가지도록 데이터를 되돌린다.