Testing — verify component behavior.
Setup:
1npm install --save-dev @testing-library/react-native
Basic test:
1import { render, fireEvent, screen } from "@testing-library/react-native";23test("button press increases count", () => {4 render(<Counter />);56 const button = screen.getByText("Increment");7 fireEvent.press(button);89 expect(screen.getByText("Count: 1")).toBeTruthy();10});
Querying elements:
getByText — find by text content.getByTestId — find by testID prop.getByPlaceholderText — find TextInput by placeholder.queryByText — returns null instead of throwing.Async testing:
1import { waitFor } from "@testing-library/react-native";23test("loads data", async () => {4 render(<DataList />);56 await waitFor(() => {7 expect(screen.getByText("Item 1")).toBeTruthy();8 });9});