최대 1 분 소요

TDD란?

개념

테스트 주도 개발: 테스트가 개발을 이끌어 나간다.
즉, 테스트를 먼저 작성한 뒤에 테스트를 통과하기 위한 코드를 짜는 것이다.

왜 TEST를 해야할까?

테스트를 함으로써 더욱 안정적인 어플리케이션을 만들 수 있고 재설계 및 기능 추가 시 용이하다.

단위(Unit) 테스트

개념

소스 코드의 개별 단위를 테스트하여 사용할 준비가 되었는지 확인한다.

장점

개발 라이프 사이클의 초기 단계에서 버그가 식별되므로 버그 수정 비용을 줄일 수 있다.

조건

독립적이어야 하며, 다른 테스트에 의존하지 않아야 한다. Ajax, Axios, LocalStorage등 테스트 대상이 의존하는 것을 다른 것으로 대체해야 한다.

Jest

Jest란?

FaceBook에 의해서 만들어진 테스트 프레임워크이며, 단위테스트를 위해 사용한다.

설치

npm install --save-dev jest

스크립트 변경

// package.json
"scripts": {
  "test": "jest" // or jest --watchAll
}, 

통합(Integration) 테스트

개념

통합테스트는 모듈을 통합하는 단계에서 수행하는 테스트이다. 단위테스트를 먼저 수행하여 모듈들이 잘 작동되는 것을 확인했다면, 모듈들을 연동하여 통합테스트를 수행한다.

필요성

  1. 모듈들의 상호 작용이 잘 이루어지는지 검증할 수 있다.
  2. 통합하는 과정에서 발생할 수 있는 오류를 찾을 수 있다.

    Supertest란?

    node.js http 서버를 테스트하기 위해 만들어진 모듈이다. supertest 모듈을 이용해서 통합테스트를 쉽게 구현할 수 있다.



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기