Jest를 이용해서 테스트 코드를 작성해 보자!

김민섭·2022년 12월 12일
0

테스트 코드 작성의 이유

테스트 코드를 작성해야하는 이유...?

  • 작성한 코드가 의도한 대로 작동하는지 검증할 수 있다.
  • 코드 변경 시, 변경 부분으로 인한 영향도를 쉽게 파악할 수 있다.
  • 코드 리팩토링 시 기능 구현이 동일하게 되었다는 판단을 내릴 수 있다.
  • 코드 변경 시, 변경 부분으로 인한 영향도를 쉽게 파악할 수 있다.

테스트 코드를 작성 시 얻는 장점이 너무나 많기 때문에 작성하지 않을 이유가 없다...!

그렇다면 테스트 코드는 어떻게 작성하는 것인가...!

우선 테스트 코드에는 두 가지 종류가 있다.

  • 단위 테스트 (Unit Test)

    클래스 하나, 함수 하나와 같이 작은 부분에 대한 테스트
    최대한 간단하고 디버깅 쉽도록 테스트 한다.

  • 통합 테스트 (Integration Test) / 인수 테스트 (Acceptance Test)

    여러 모듈 간 의도대로 협력하는 지에 대한 테스트
    비교적 단위 테스트보다 복잡하고 시간이 많이 소요(관련 모듈 설정 등을 포함하기 때문에)된다.
    프로그램에 필요한 외부 환경(서드파티 라이브러리, DB)까지 묶어서 검증할 수 있다.
    따라서 단위 테스트에서 발견하기 어려운 버그를 찾을 수도 있다.

이 외에도 필요시 기능 테스트(Functional Test)와 같이 다양한 테스트가 추가될 수 있다.

내가 오늘 작성한 것은 통합 테스트

통합 테스트 작성 방법

우선 테스트 코드 시 사용할 데이터들을 정리해봤다

그리고 supertest를 이용하여 통합 테스트 코드를 작성한다

  • supertest란?

  1. HTTP assertion을 쉽게 만들어주는 라이브러리
  2. 클라이언트 사이드 HTTP request 라이브러리 인 superagent를 기반으로 만들어짐

superTest의 사용법은 이 블로그를 참고 (정리를 잘 해놓았다)
https://velog.io/@modolee/supertest-user-guide-01

나의 통합 테스트 최종 코드

profile
getting ready to run

0개의 댓글