테스트 코드는 내가 작성한 메서드나 기능이 제대로 동작하는지 테스트하는 코드
Google Test Automation Conference에서 제안된 Testing Pyramid
<aside> 💡 시스템을 테스트 할때 크게 3가지 방법으로 나눌 수 있다.
테스트 비중을 아래와 같은 수치로 구현하는 것을 권장합니다.
E2E(UI) Testing
- 10%Integrating Testing
- 20%Unit Testing
- 70%
</aside>개별적인 코드 단위(보통 함수 또는 메서드)가 의도한 대로 정확하게 작동하는지를 확인하는 테스트
Storybook(이하 스토리북)으로 컴포넌트만 브라우저 화면에 렌더링하고 다양한 상태에 따른 결과물을 살펴볼 수 있다.
테스팅 환경에서 임의의 컴포넌트를 렌더링한 뒤 testing-library로 사용자 시점의 인터랙션 및 단언을 확인할 수 있다.
여러 구성 요소 또는 모듈을 결합한 동작을 테스트
여러 컴포넌트의 결합체를 테스트하는 것도 testing-library를 활용하여 컴포넌트의 세부 구현에 매몰되지 않고 사용자 인터랙션 수준의 통합 테스트를 수행
만약 API 서버에서 데이터를 가져오는 로직이 포함된다면, MSW(Mock Service Worker)를 사용하여 백엔드 API를 모킹
사용자의 관점에서 어플레이케이션과의 상호작용에 대한 테스트
Cypress, Playwright 등을 활용하여 실제 브라우저에서 렌더링 된 애플리케이션 전체를 대상으로 테스트한다.
MSW는 E2E 테스트에서도 유용하게 사용할 수 있다.