Agent-skills-standard react-native-testing
Test React Native components with Jest and React Native Testing Library. Use when writing Jest or React Native Testing Library tests for React Native components. (triggers: **/*.test.tsx, **/*.spec.tsx, __tests__/**, test, testing, jest, render, fireEvent, waitFor)
install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/react-native/react-native-testing" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-react-native-testing && rm -rf "$T"
manifest:
skills/react-native/react-native-testing/SKILL.mdsource content
React Native Testing
Priority: P1 (OPERATIONAL)
Setup
- Jest: Pre-configured in React Native.
- Testing Library: Use
for user-centric tests.@testing-library/react-native - Mocking: Use
for native modules.jest.mock()
Component Testing
import { render, fireEvent, waitFor } from '@testing-library/react-native'; test('increments counter on button press', () => { const { getByText, getByRole } = render(<Counter />); const button = getByRole('button', { name: /increment/i }); fireEvent.press(button); expect(getByText('Count: 1')).toBeTruthy(); });
Async Testing
test('fetches and displays data', async () => { const { findByText } = render(<DataComponent />); const element = await findByText(/loaded data/i); expect(element).toBeTruthy(); });
Best Practices
- User-Centric: Use
,getByRole
overgetByText
when possible.testID - Integration > Unit: Test features, not implementation.
- Avoid Snapshots: Use sparingly. Brittle and hard to review.
- Coverage: Aim for 70%+. Focus on critical paths.
Anti-Patterns
- No Testing Implementation: Test behavior, not internals.
- No testID Overuse: Prefer accessible queries.
References
See references/testing-library.md for RNTL setup, mocking providers, and integration flow examples.