원문 제목: Testing React Server Components in Next.js
원문 링크: https://dev.to/shieldstring/testing-react-server-components-in-nextjs-1953
번역일: 2026-03-07 (KST)
React Server Components(RSC)는 렌더링을 서버로 옮겨 클라이언트 JavaScript를 줄이고, API 계층 없이 데이터에 직접 접근하며, 성능과 SEO를 개선한다. Next.js App Router에서는 기본이 서버 컴포넌트라서 실제 코드베이스 대부분이 RSC가 된다.
다만 테스트 방식은 기존 클라이언트 컴포넌트와 다르다. RSC는 브라우저 환경에서 실행되지 않으므로 jsdom 기반 @testing-library/react의 일반적인 render() 패턴이 잘 맞지 않는다. 서버 전용 API(cookies, headers, redirect, notFound)를 쓰는 경우 모킹이 필수이며, 컴포넌트가 async 함수이기 때문에 테스트에서 먼저 await로 컴포넌트를 실행한 뒤 renderToString으로 결과 HTML을 검증해야 한다.
권장 설정은 Jest의 testEnvironment: 'node'다. 데이터 호출은 단순 fetch 목킹으로 시작하고, 시나리오가 복잡해지면 MSW로 전환해 에러/지연/다중 엔드포인트를 현실적으로 다루는 게 좋다. 테스트 초점은 데이터 변환, 조건부 렌더링, 에러 처리, 호출 검증 같은 “로직”에 두고, 라우팅/실서버 파이프라인은 Playwright/Cypress 같은 통합·E2E로 분리하라고 제안한다.