본문 바로가기

clone toy projects/node_express_sns

테스트 준비하기

이번 장에서는 NodeBird 서비스에 테스팅을 적용해보겠습니다. 

실제 서비스를 개발 완료한 후, 개발자나 QA들은 자신이 만든 서비스가 제대로 동작하는지 테스트해봅니다. 

 

이 때 기능이 많다면 일일이 수작업으로 테스트하기에는 작업량이 너무 많을 수 있습니다. 

이런 경우 테스트를 자동화하여 프로그램이 프로그램을 테스트하도록 만들기도 합니다. 

또한, 테스트 환경과 실제 서비스 환경은 다르므로 테스트하는 데 제약이 따를 수도 있고, 

테스트 결과와 실제 동작 결과가 다를 수도 있습니다. 이럴 때는 테스트 환경에서 실제 환경을 최대한 흉내내서 작업합니다.

단, 테스트를 아무리 철저하게 해도 모든 에러를 완전히 막을 수는 없습니다. 

보통 에러는 개발자가 예상하지 못 한 케이스에서 발생하므로, 예상하지 못한다면 그에 대한 테스트도 작성할 수 없습니다. 

 

하지만 모든 에러를 없앨 수 없더라도 테스트는 작성하는 게 좋습니다. 

간단한 에러로 인해 프로그램이 고장나는 것은 막을 수 있기 때문입니다.

이번 장에서는 여러 가지 테스트 기법 중 유닛 테스트통합 테스트부하 테스트테스트 커버리지 체크를 살펴봅니다.

 

테스트에 사용할 패키지는Jest 입니다. 

이 패키지는 페이스북에서 만든 오픈 소스로, 테스팅에 필요한 불들을 대부분 갖추고 있어 편리합니다. 

9장의 NodeBird 프로젝트를 그대로 사용하고,

 여기에 Jest 패키지를 설치합니다. 테스팅은 개발 시에만 사용하므로 -D 옵션을 사용합니다.

npm install -D jest

package.json에는 test라는 명령어를 등록해둡니다. 명령어를 실행할 때 Jest가 실행됩니다.

 


routes 폴더 안에 middlewares.test.js를 만듭니다. 

테스트용 파일은 파일명과 확장자 사이에 test나 spec을 넣으면 됩니다. 

npm test로 테스트 코드를 실행할 수 있습니다. 파일명에 test나 spec이 들어간 파일들을 모두 찾아 실행합니다.

test 함수의 첫 번째 인수로는 테스트에 대한 설명을 적고, 두 번째 인수인 함수에는 테스트 내용을 적습니다. 

expect 함수의 인수로 실제 코드를, toEqual 함수의 인수 예상되는 결과값을 넣으면 됩니다.

 

테스트가 실패하면 정확히 어떤 부분에서 실패했는지 시각적으로 보여줍니다.

따라서 코드에 대해 테스트를 작성해두면 어떤 부분에 문제가 있는 지 명확하게 파악할 수 있습니다.

 

 

 

 

 

 

'clone toy projects > node_express_sns' 카테고리의 다른 글

테스트 커버리지  (0) 2023.08.27
유닛 테스트  (0) 2023.08.25
CORS 이해하기  (0) 2023.08.25
사용량 제한 구현하기  (0) 2023.08.25
SNS API 서버 만들기  (0) 2023.08.25