React6 min read

React Testing Basics

Test React components with Jest and React Testing Library.

Sarah Johnson
December 20, 2025
0.0k0

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