My Dream Being Visualized

Jest를 활용한 TDD 단위 테스트 - 1편 본문

Backend/TDD

Jest를 활용한 TDD 단위 테스트 - 1편

마틴킴 2021. 11. 30. 09:01
728x90

 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _)

 

지난 시간엔, TDD가 무엇인지, 장단점이 무엇인지, 어떻게 써야하는지에 대해서 알아보았다.
이번 시간에는 단위 테스트에 대해서 알아볼 것이다.

 

단위 테스트란?

개발자가 만든 모듈 단위 '내'에서 개별 단위로 나누어 테스트를 하는 방법이다.

그렇기에, 다른 테스트에 의존하지 않아야 한다.

(한 마디로, 기능(들)에 대한 가장 작은 단위인 모듈을 쪼개서 테스트하는 방식이다!)

초기 단계에서 테스트를 진행하기 때문에 디버깅 시간을 많이 줄일 수 있다.

 

왜 단위 테스트를 해야하는가?

  • 프로그램이 방대하여 아래와 같이 테스트를 위한 조건이 까다로울 때 꼭! 필요하다.
    1. 시간이 오래 걸린다.
      • 작은 로직만 수정했음에도 불구하고 테스트시간이 오래 걸릴 경우
    2. 메모리를 많이 잡아 먹는다.
      • 실무에서, 데이터베이스에서 40만건의 데이터를 읽어서 테스트 할 때 곤욕을 치뤘다..
    3. 데이터베이스를 활용해야 한다.
    4. 로컬 서버에서 테스트를 할 수 없다.
    5. 등등..
  • 종속성이 있을 때, 다른 코드에서 오류가 나는 것을 방지하기 위해서 꼭! 필요하다.
    • A라는 함수는 B와 C라는 함수에서 사용하는데, B를 위해 A를 수정했을 때 C에서 오류가 난다..

 

단위 테스트 전 설정

필자는, javascript와 typescript를 활용하여 개발하기 때문에 Jest라는 테스트 프레임워크를 활용할 것이다!

# 테스트를 위한 프레임워크이기 때문에 devDependencies에 저장한다!
# 자바스크립트 용
npm install jest --save-dev

# 타입스크립트 용
npm install @types/jest --save-dev
// package.json에 아래와 같이 명시해준다.

scripts: {
	...
    "test": "jest"
    ...
}

/*
	jest는 
    파일이름 내: test, spec
    폴더이름 내: tests
    가 들어가있는 파일들을 찾아서 실행한다.
*/

 

다음 시간엔, 실제로 Unit Test를 구현해보겠다.
개념 숙지와 사전 준비 끝!