End-to-end 테스트
개별 모듈과 클래스에 중점을 두는 Unit 테스트와 달리 end-to-end(e2e) 테스트는 보다 종합적인 수준에서 클래스와 모듈의 상호 작용을 다룹니다.
애플리케이션이 성장함에 따라 각 API endpoint의 E2E 동작을 수동으로 테스트하기가 어려워집니다. 자동화된 E2E 테스트는 시스템의 전반적인 동작이 정확하고 프로젝트 요구 사항을 충족하는지 확인하는 데 도움이 됩니다.
Nest를 사용하면 SuperTest 라이브러리를 사용하여 HTTP request를 쉽게 시뮬레이션할 수 있습니다. SuperTest는 superagent를 기반으로 하는 HTTP 검증 라이브러리입니다.
request()
SuperTest 의 request(app.getHttpServer())
함수를 사용하여 HTTP 테스트를 시뮬레이션합니다.
1 | // localhost:3000/ 으로 라우팅될 때 Hello World!가 출력되는지 확인 |
이러한 HTTP request 가 실행 중인 Nest 앱으로 라우팅 되기를 원하므로 request()
함수에 Nest 의 기반이 되는 HTTP 리스너에 대한 참조를 전달합니다.
사용 예시
기본적인 CRUD (Create/Read/Update/Delete) 에 대한 테스트를 하기 위해 다음과 같이 작성할 수 있습니다.
1 | describe('/users', () => { |