byteNative
Testing & Qualität

Testing Library

Nutzerzentrierte Komponententests, die echtes Verhalten prüfen.

Was ist Testing Library?

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 Dokumentation

Wofür wir es nutzen

Wir 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.

tsx
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();
});
Per Rolle abfragen statt per CSS-Klasse.

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.

00Testing & Qualität

Weitere Werkzeuge, mit denen wir im selben Bereich arbeiten.

Welche Technologie passt zu dir?

Das musst du nicht entscheiden, das ist unser Job. Erzähl uns einfach von deinem Vorhaben.