가장 많이 사용되는 라이브러리인 Mocha는 개발자들에게 기본 테스트 구조만 제공하는 유연한 라이브러리이다.
다양한 리액트 애플리케이션과 함께 Facebook에서 사용하고 추천하는 Jest는 잘 지원된다. Jest는 또한 영리한 병렬 테스트로 인해 매우 빠른 테스트 라이브러리를 보고한다.
enzyme 메소드로 렌더링한 wrapper는 다양한 기능(mount, shallow, render)을 할 수 있습니다. 내부 state나 props에 접근할 수도 있고, 이벤트를 시뮬레이션할 수도 있다.
shallow - 이렇게 하면 기본적으로 매번 단일 구성 요소가 렌더링된다. 다시 말해서 효소는 테스트의 하위 요소를 고려하지 않는다. 구성 요소 자체를 주변의 다른 구성 요소나 내부로부터 분리하여 테스트하려는 상황을 고려해야한다.이 렌더링 유형은 완전 통합 테스트보다는 단위 테스트를 선호하는 경우에 유용하다.
mount - 이것은 모든 하위 요소를 포함하는 전체 DOM 렌더링을 사용하는 얕은 부분의 반대이다. 각 구성 요소가 다른 구성 요소(DOM API)와 집중적으로 상호 작용하는 상황에 이상적이다.
render - 정적 HTML로 렌더링된다. 여기에는 모든 하위 요소가 포함된다. 이와 동시에, 리액트 라이프사이클 방법에 대한 액세스를 방지하여 테스트를 위한 유연성과 기능을 적게 제공한다. 속도는 굉장히 빠르다. 서버용 jQuery Core를 기반으로 하는 DOM 조작 및 트래버설 API인 Cherio를 기반으로 한다.
참고 https://raygun.com/blog/javascript-unit-testing-frameworks/