목록 보기
MSW 사용하여 테스트 코드 작성하기 with GraphQL, react-query
프론트엔드

MSW 사용하여 테스트 코드 작성하기 with GraphQL, react-query

더핑크퐁컴퍼니
더핑크퐁컴퍼니
2022년 6월 14일

두줄요약

MSW로 GraphQL·react-query 요청을 네트워크 수준에서 모킹하는 Jest 테스트 구성을 소개했습니다. 공통 렌더러와 핸들러로 응답별 UI를 검증하는 방법을 설명합니다.

구조와 흐름

  • MSW 핸들러로 GraphQL Query와 응답 데이터 사전 정의
  • Node 테스트 환경의 server instance와 Jest 생명주기 연결
  • 공통 Renderer·userEvent 설정 후 API 응답 기반 UI 렌더링 검증

선택 이유

  • 실제 서버 요청 없이 네트워크 수준 API request·response mocking
  • loading·error 등 네트워크 상황별 UI 테스트 가능
  • Service Worker 기반 표준 API 활용과 메인 스레드 비차단 처리

주의할 점

  • GraphQL 요청 가로채기를 위한 Query Operation name 일치 필요
  • Service Worker의 HTTPS 제약, Firefox 시크릿 모드 접근 제한, IE 미지원
  • Node 환경에서 Service Worker 대신 HTTP 또는 XMLHttpRequest 확장 방식 활용

적용해볼 점

  • 백엔드 API 미완성 상태의 MockData 기반 프론트엔드 화면 개발
  • react-query 훅 단위 테스트를 넘어 다양한 API 응답별 컴포넌트 테스트

다음 읽기

#MSW 주제를 다룬 다른 회사 글

MSW - 더 나이스한 목킹을 위한 고민

MSW를 활용해 브라우저와 Node 환경에서 API 목킹을 통합하는 방법을 정리했습니다. 개발 속도 차이와 테스트용 목업 중복 문제를 줄인 사례를 소개했습니다.

매드업
매드업
프론트엔드
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...