Nutzerzentrierte Komponententests, die echtes Verhalten prüfen.
Testing Library prüft Komponenten so, wie echte Menschen sie tatsächlich bedienen, statt sich an internen Details festzuhalten. Du fragst Elemente über ihre Rolle, ihr Label oder ihren sichtbaren Text ab, nicht über CSS-Klassen oder Komponenten-Interna. Dadurch entstehen Tests, die das Verhalten einer Oberfläche absichern und bei Umbauten nur selten grundlos kaputtgehen. Als angenehmer Nebeneffekt drängt dich diese Denkweise zu zugänglicheren Komponenten, weil zugängliche UI auch gut testbare UI ist.
Mehr in der DokumentationWir setzen Testing Library für alles ein, was im Frontend Verhalten hat: Formulare, Modals, Listen mit Zuständen. Statt Implementierungsdetails festzuzurren testen wir, was die Nutzerin sieht und auslöst, sodass du dein Markup frei umbauen kannst, ohne die Tests jedes Mal nachzuziehen. Das ist der Klebstoff zwischen unseren Unit-Tests und den größeren Browser-Tests.
import { render, screen } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import { Counter } from "./Counter";
test("increments on click", async () => {
render(<Counter />);
await userEvent.click(screen.getByRole("button", { name: /add/i }));
expect(screen.getByText("1")).toBeInTheDocument();
});Gut zu wissen
Greif zur Prioritätenliste der Queries: getByRole vor getByLabelText vor getByText, und testId nur als letztes Mittel. Für alles nach einem Klick brauchst du findBy oder waitFor, weil React-Updates asynchron sind und getBy sonst zu früh scheitert.
Weitere Werkzeuge, mit denen wir im selben Bereich arbeiten.
Jest & Vitest
Schnelle Unit- und Integrationstests für verlässlichen Code.
Playwright
End-to-End-Tests, die echte Nutzerflows im Browser absichern.
Cypress
Komfortables E2E-Testing mit exzellentem Debugging.
Sentry
Echtzeit-Fehlertracking und Performance-Monitoring im Betrieb.
ESLint & Prettier
Automatische Code-Qualität und einheitliche Formatierung.
Das musst du nicht entscheiden, das ist unser Job. Erzähl uns einfach von deinem Vorhaben.