rn-testing
Jest로 React Native 앱 테스트하기
React Native 앱 테스트를 작성하려면 네이티브 모듈 모킹, 비동기 상태 처리, Zustand 스토어 테스트에 대한 이해가 필요합니다. 이 스킬은 안정적인 테스트 스위트를 위한 검증된 패턴과 코드 예제를 제공합니다.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“rn-testing”。 Zustand 스토어를 테스트하는 방법은?
预期结果:
- setState(initialState, true)를 사용하여 각 테스트 전에 스토어를 초기화하여 상태를 병합하지 않고 교체합니다
- getState()를 사용하여 비동기 작업 후 새로운 상태에 접근합니다
- 테스트 시 비동기 스토어 액션을 act()로 감쌉니다
- 예시: beforeEach(() => { useAssessmentStore.setState(initialState, true); });
正在使用“rn-testing”。 테스트에서 expo-router를 모킹하는 방법은?
预期结果:
- jest.mock('expo-router', () => ({ useRouter: () => ({ push: jest.fn(), replace: jest.fn(), back: jest.fn() }) }))를 사용합니다
- 모든 테스트 파일에서 일관된 동작을 위해 jest.setup.js에서 모킹을 전역으로 설정합니다
- beforeEach에서 jest.clearAllMocks()로 테스트 간 모킹을 초기화합니다
- 라우트 파라미터를 읽는 화면을 위해 useLocalSearchParams를 모킹하여 테스트 데이터를 반환합니다
正在使用“rn-testing”。 테스트에서 act() 경고를 수정하는 방법은?
预期结果:
- 모든 상태 업데이트와 비동기 작업을 act()로 감싸서 적절한 타이밍을 보장합니다
- 즉시 나타나지 않을 수 있는 비동기 콘텐츠에 대한 단언에는 waitFor()를 사용합니다
- 비동기 콘텐츠에는 getBy* 대신 findBy* 쿼리를 선호합니다 (findBy는 내장 대기 기능 포함)
- 테스트 완료 후 resolve되는 대기 중인 프로미스를 확인합니다
安全审计
安全This skill is pure documentation containing only testing patterns for React Native. The static scanner incorrectly flagged markdown code blocks and JavaScript method names. No executable code, network calls, or file operations exist in this skill.
风险因素
🌐 网络访问 (2)
⚙️ 外部命令 (27)
质量评分
你能构建什么
불안정한 스토어 테스트 수정
테스트 간 Zustand 스토어 상태를 초기화하여 상태 누수로 인한 간헐적 테스트 실패를 방지하는 방법을 배웁니다.
Expo 네이티브 모듈 모킹
Jest 테스트에서 expo-router, expo-secure-store 및 기타 Expo 모듈에 대한 적절한 모킹을 설정합니다.
비동기 작업 테스트
act()와 waitFor를 사용하여 테스트에서 비동기 스토어 액션과 React Query 데이터 페칭을 처리합니다.
试试这些提示
Jest와 React Native Testing Library로 React Native 컴포넌트를 테스트하는 방법은?
Zustand 스토어를 테스트하고 테스트 간 상태가 지속되는 것을 방지하는 방법은?
Jest 테스트에서 expo-router와 expo-secure-store를 모킹하는 방법을 보여줘.
내 React Native 테스트에 act() 경고와 타임아웃이 발생합니다. 어떻게 수정하나요?
最佳实践
- 테스트 간 오염을 방지하기 위해 항상 beforeEach에서 스토어 상태를 초기화합니다
- 경쟁 상태를 피하기 위해 비동기 콘텐츠에는 getBy* 대신 findBy* 쿼리를 사용합니다
- 일관된 동작을 위해 expo-router와 같은 외부 의존성을 모듈 수준에서 모킹합니다
避免
- 즉시 나타나지 않을 수 있는 비동기 콘텐츠에 getBy* 쿼리 사용
- 네비게이션 테스트 간 jest.clearAllMocks()로 모킹을 초기화하는 것을 잊음
- 사용자에게 보이는 동작 대신 구현 세부사항 테스트