테스팅
테스팅 (Testing)
회귀(regression)를 막고 더 좋은 코드를 작성하기 위해 테스트를 어떻게 작성하는지 알아볼게요. Material UI 컴포넌트를 테스트할 때 권장하는 방식과 내부 테스트 방식을 함께 살펴봐요.
출처: 문서
본문
사용자 영역 (Userspace)
일반적으로 테스트를 Material UI에 너무 밀착시키지 말고 애플리케이션을 테스트하는 것이 권장돼요. 이것이 바로 Material UI 컴포넌트가 내부적으로 테스트되는 방식이기도 합니다. 이 접근 방식에 대한 일급(first-class) API를 제공하는 라이브러리로는 @testing-library/react가 있어요.
예를 들어 TextField를 렌더링할 때, 테스트는 Material UI의 특정 TextField 인스턴스를 조회할 필요 없이 input이나 [role="textbox"]를 조회해야 합니다.
React 컴포넌트 트리에 의존하지 않으면 테스트가 Material UI 내부 변경에 대해 더 견고해져요. 혹시 스냅샷 테스트가 필요하다면 context provider 같은 추가 래퍼 컴포넌트를 추가할 때도 더 안전하답니다. 다만 저희는 스냅샷 테스트를 권장하지 않아요. Kent C. Dodds의 "Effective snapshot testing"을 보면 스냅샷 테스트가 React 컴포넌트 테스트에서 왜 오해를 불러일으킬 수 있는지 자세히 설명되어 있어요.
내부 (Internal)
Material UI에는 방대한 범위의 테스트가 있어서 컴포넌트를 자신 있게 반복 개발(iterate)할 수 있어요. 예를 들어 Argos가 제공하는 비주얼 회귀(visual regression) 테스트가 정말 유용하다는 게 입증되었답니다. 내부 테스트에 대해 더 알고 싶다면 README를 참고해 보세요.