React
React components testen - Basics met testing-library
Test wat users zien, niet implementatie details.
Testing filosofie
Test behavior, niet implementation Render component Query for elements Simulate user interaction Assert expected result
Tools
React Testing Library - render, screen, fireEvent Jest - test runner, assertions Test user flows, not technical details
Code Voorbeelden
JAVASCRIPTComponent test
import { render, screen, fireEvent } from '@testing-library/react';
import Button from './Button';
test('Button click handler fires', () => {
const handleClick = jest.fn();
render(<Button onClick={handleClick}>Click me</Button>);
const button = screen.getByRole('button', { name: /click me/i });
fireEvent.click(button);
expect(handleClick).toHaveBeenCalledTimes(1);
});
// Test form
test('Form submission works', () => {
render(<LoginForm />);
fireEvent.change(screen.getByPlaceholderText(/email/i), {
target: { value: 'test@example.com' }
});
fireEvent.click(screen.getByRole('button', { name: /submit/i }));
expect(screen.getByText(/success/i)).toBeInTheDocument();
});Relevante trefwoorden
testingjesttesting-library