cleanUrl: /단위 테스트 시작하기

NestJS 프로젝트를 개발하다 보면 코드량이 많아지면서 수동 테스트만으로는 한계가 느껴질 때가 있다. 이 글에서는 수동 테스트에서 자동 테스트로 전환하는 방법과 NestJS에서 자주 사용하는 테스트 유형을 살펴본다.

image.png

NestJS 프로젝트에서는 크게 두 가지 테스트 유형을 사용한다.

  1. 단위 테스트 (Unit Test): 클래스 하나에 집중하여 해당 클래스의 메서드들이 예상대로 동작하는지 확인하는 테스트이다. 주로 의존성 주입과 관련하여 각 메서드의 개별 동작을 검증한다.
  2. 통합 테스트 / 엔드투엔드 테스트 (Integration / E2E Test): 애플리케이션 전체를 실행하여 요청과 응답이 예상대로 이루어지는지를 확인한다. 실제 웹 서버를 구동하여 API 엔드포인트를 테스트하는 데 사용된다.

1. 단위 테스트

단위 테스트를 작성하기 전에, NestJS 의존성 주입(DI) 시스템을 이해하는 것이 중요하다. 단위 테스트를 작성할 때 의존성 주입으로 인해 복잡도가 증가할 수 있다.

NestJS 프로젝트를 생성하면 기본적으로 test 디렉토리가 포함되어 있다.

이 디렉토리에는 기본적인 엔드투엔드 테스트 파일이 포함되어 있으며, 추가로 서비스와 컨트롤러에 대한 단위 테스트 파일도 작성할 수 있다.

image.png

2. Auth Service 단위 테스트 작성