React6 min read

React Testing Basics

Test React components with Jest and React Testing Library.

Sarah Johnson
Dec 19, 2025
29.8k1,133

Test components to ensure they work correctly.

Simple Test

import { render, screen } from '@testing-library/react';
import Button from './Button';

test('renders button', () => {
  render(<Button>Click Me</Button>);
  const button = screen.getByText('Click Me');
  expect(button).toBeInTheDocument();
});

Testing User Events

import { fireEvent } from '@testing-library/react';

test('button click', () => {
  const handleClick = jest.fn();
  render(<Button onClick={handleClick}>Click</Button>);
  
  const button = screen.getByText('Click');
  fireEvent.click(button);
  
  expect(handleClick).toHaveBeenCalledTimes(1);
});

Testing State

test('counter increments', () => {
  render(<Counter />);
  
  const button = screen.getByText('+');
  fireEvent.click(button);
  
  expect(screen.getByText('Count: 1')).toBeInTheDocument();
});

Async Testing

test('loads users', async () => {
  render(<UserList />);
  
  const users = await screen.findByText('John Doe');
  expect(users).toBeInTheDocument();
});

Remember

  • Test user behavior
  • Don't test implementation details
  • Use findBy for async
  • Mock API calls

Next: Learn debugging techniques!

#React#Testing#Jest#Intermediate