React Testing Library encourages testing components the way users interact with them. Here's how to write effective tests.
Query Priority#
User Events#
Async Testing#
Testing Hooks#
Mocking#
Testing Patterns#
Common Assertions#
Best Practices#
Queries:
✓ Prefer role queries
✓ Use accessible names
✓ Avoid testId when possible
✓ Use findBy for async elements
User Events:
✓ Use userEvent over fireEvent
✓ Always await user actions
✓ Test keyboard accessibility
✓ Test realistic user flows
Assertions:
✓ Assert on user-visible output
✓ Avoid testing implementation
✓ Test accessibility
✓ Keep assertions focused
Organization:
✓ One assertion focus per test
✓ Use describe blocks for grouping
✓ Extract common setup
✓ Use meaningful test names
Conclusion#
React Testing Library encourages testing from the user's perspective. Prioritize accessible queries, use userEvent for interactions, and assert on visible output rather than implementation details. This approach leads to more maintainable tests that give confidence in your application's behavior.