Node.js / NestJS

엔드투엔드 테스트

Supertest, 테스트 데이터베이스, fixtures, 테스트에서의 인증, API 테스트

20 면접 질문·
Mid-Level
1

NestJS 맥락에서 E2E(엔드투엔드) 테스트란 무엇인가요?

답변

E2E 테스트는 HTTP 요청부터 응답까지 모든 레이어(controller, service, database)를 거치는 애플리케이션의 전체 흐름을 검증합니다. 컴포넌트를 격리하는 단위 테스트와 달리, E2E 테스트는 모든 컴포넌트의 통합이 올바르게 작동하는지 검증합니다. 이를 통해 단위 테스트가 잡아낼 수 없는 통합 버그를 발견할 수 있습니다.

2

NestJS가 E2E 테스트에 권장하는 라이브러리는 무엇인가요?

답변

Supertest는 네트워크 포트에서 서버를 시작하지 않고도 HTTP 엔드포인트를 테스트할 수 있기 때문에 NestJS에서 E2E 테스트에 권장되는 라이브러리입니다. 격리된 애플리케이션 인스턴스를 만들고 시뮬레이션된 HTTP 요청을 직접 보냅니다. 이를 통해 테스트가 더 빠르고 안정적이며 병렬 테스트 간 포트 충돌을 방지합니다.

3

NestJS 테스트에서 Supertest용 HTTP 서버 인스턴스를 얻으려면 어떻게 해야 하나요?

답변

app.getHttpServer() 메서드는 기반이 되는 HTTP 서버 인스턴스(Express 또는 Fastify)를 반환하며, 이를 Supertest에 전달하여 테스트 요청을 보낼 수 있습니다. 이 메서드는 Test.createTestingModule()로 테스트 모듈을 생성한 후 사용할 수 있습니다. 이를 통해 Supertest는 네트워크 포트에서 서버를 시작하지 않고도 서버에 직접 접근할 수 있습니다.

4

NestJS 프로젝트에서 E2E 테스트는 일반적으로 어떤 파일에 배치되나요?

5

HTTP 응답의 status code를 확인할 수 있는 Supertest 메서드는 무엇인가요?

+17 면접 질문

다음 면접을 위해 Node.js / NestJS을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기