자바스크립트의 테스트코드, Jest란 무엇인가?
Last updated
Last updated
코드가 원하는 방향으로 작동하기 위해 작성하는 또 다른 코드를 테스트 코드라고 한다. 테스트 코드를 작성하는 많은 방법 중 자바스크립트를 사용하는 이들에게 유용한 Jest
라는 프레임워크 대해 알아보자.
Jest의 공식 홈페이지에 접속하면 가장 상단에 아래와 같은 문구가 보인다.
이를 해석하자면 아래와 같이 설명할 수 있다.
Jest는 단순함에 집중한 테스팅 프레임워크이다.
Jest는 Babel, TypeScript, Node, React 등에서 사용할 수 있다.
이러한 Jest는 페이스북이 개발한 JS 테스팅 프레임워크이다. 즉, Jest는 간단한 코드를 작성하므로써 코드가 제대로 동작하는지 확인할 수 있다.
결과값을 얻기 위해 console.log()
를 자주 사용한다. console.log()
를 통해 결과값을 충분히 알 수 있고 사전에 오류를 어느정도 차단할 수 있다. 그럼에도 많은 개발자들이 테스팅을 위한 프레임워크를 사용하여 테스트 코드를 작성하는 이유는 무엇일까?
가장 큰 이유는 다른 누군과의 협업이다. 협업을 한다는 것은 나 이외의 다른 사람들과 코드를 서로 공유한다는 의미이다. 내 코드가 오류가 없는 정상적이다라는 것을 빌드하기 전 테스트를 통해 확인하여 동료들과의 협업에서 신뢰성을 얻을 수 있다.
뿐만 아니라 아래와 같은 이점이 있다.
코드가 올바르게 작동하는지 쉽게 확인할 수 있다.
언제까지 console.log()
로 확인만 할 것이가? 빌드를 하게 된다면 코드의 깔끔함을 위해 console.log()
는 제거해야 한다. 그렇게 된다면 어디에서 내가 무엇을 확인하기 위해 console.log()
를 작성했는지 일일히 알아야 한다. 한 두가지라면 금방 알 수 있지만 파일이 많아지면서 여러 파일에서 console.log()
가 많이 사용된다면 곤란한 상황 생길 수 밖에 없다. 하지만 Jest를 사용하여 테스트 코드를 작성하게 된다면 하나의 파일에서 관리할 수 있기 때문에 쉽게 확인할 수 있고 수정, 관리하기도 편리하다.
기초적인 버그를 사전에 차단할 수 있다. 프로그래밍에서 유명한 말이있다. 바로 "사용자를 믿지 말라는 것이다." 그렇기 때문에 예외처리가 중요하다고 할 수 있다. 잘못된 인풋을 막기 위해 프로그래머들은 사전에 대비를 해야한다. 이를 위한 효과적인 방법이 바로 테스트 코드를 작성하는 것이라고 할 수 있다.
Jest의 공식 홈페이지에서 소개하고 있는 Jest의 특징에 대해 알아보자.
생각보다 많은 유명한 기업에서 Jest를 사용하고 있다. Jest를 개발한 페스북은 물론, 트위터, 에어앤비, 인스타그램 등 유명 기업에서 광범위하게 사용되고 있다.
아래의 사진을 본다면 Jest 저장소의 fork수와 star수를 보면 많은 회사, 개발자들에게 유용하다는 것을 짐작할 수 있다.
뿐만 아니라 Jest의 어마어마 주당 다운로드양을 보면 Jset를 충분히 학습하고 적용해야할 이유는 충분하다고 할 수 있다.
데스트코드... 당연히 지금까지 작성해 본적이 없다.
console.log()
로 결과값을 출력하는 것이 나의 테스트의 시작이자 마지막이었다. 그래서 그런지 항상 빌드를 하고 나면 오류를 발견하였다. 이번 우테코 5기 프리코스를 계기로 테스트 코드의 필요성을과 중요성을 느끼게 되었고 앞으로 꾸준한 발전을 지닌 프로그래머가 되기 위헤서 정복해야 할 하나의 과제로 Jest를 정복하겠다고 다짐하였다. 아직 모르는 것 투성이지만 천천히 그리고 꾸준히 학습하여 Jest를 내것으로 만들도록 하자.
[JEST] JEST의 기초 [Testing] 테스트의 종류 및 Jest Jest
📅 2022-11-05
FAST AND SAFE 테스트가 고유한 전역 상태를 갖도록 함으로써 Jest는 테스트를 병렬로 안정적으로 실행할 수 있습니다. 작업을 빠르게 하기 위해 Jest는 이전에 실패한 테스트를 먼저 실행하고 테스트 파일에 걸리는 시간에 따라 실행을 재구성합니다.
CODE COVERAGE --coverage 플래그를 추가하여 코드 적용 범위를 생성합니다. 추가 설정이 필요하지 않습니다. Jest는 테스트되지 않은 파일을 포함하여 전체 프로젝트에서 코드 커버리지 정보를 수집할 수 있습니다
EASY MOCKING Jest는 테스트에서 가져오기를 위해 커스텀 리졸버를 사용하므로 테스트 범위 밖의 모든 객체를 간단하게 mocking 할 수 있습니다