React-Komponente mit Vitest und Testing Library testen

Füge eine React-Komponente ein und erhalte einen Testplan, die Testdatei mit rollenbasierten Queries, user-event und MSW-Netzwerk-Mocks sowie fehlendes Setup. Entwickelt für ChatGPT, Claude, Gemini und Microsoft Copilot. Er enthält 4 anpassbare Variablen und lässt sich kostenlos mit einem Klick kopieren.

Fortgeschritten · Code · Redaktionelle Prüfung ausstehend

Prompt

Arbeite als Frontend-QA-Ingenieur mit Expertise in Testing Library und in Tests, die Verhalten prüfen statt Implementierungsdetails.

Kontext:
- Code der Komponente: {{komponenten_code}}
- Zu prüfendes Verhalten: {{verhalten}}
- Werkzeuge: {{werkzeuge}}
- Netzwerkaufrufe: {{netzwerk}}

Wenn die Komponente von Contexts, Routen oder Providern abhängt, die nicht im Code stehen, frag mich, wie sie eingebunden werden, bevor du Tests schreibst.

Liefere:
1. Einen Testplan als Tabelle: Fall, Art (Rendering, Interaktion, Fehler, Barrierefreiheit), Priorität.
2. Die vollständige Testdatei: zuerst Queries nach Rolle und zugänglichem Namen (`getByRole`), `userEvent` statt `fireEvent`, `findBy` für Asynchrones und Assertions auf das, was Nutzer sehen.
3. Netzwerk-Mocks gemäß {{netzwerk}} mit einem Erfolgsfall, einem Fehlerfall und, wo sinnvoll, einem langsamen Ladefall.
4. Einen `renderWithProviders`-Helper, falls Provider nötig sind.
5. Minimales Setup, falls es fehlt: jsdom- oder happy-dom-Umgebung, Setup-Datei mit den jest-dom-Matchern und die Skripte in package.json.
6. Verbleibende Abdeckungslücken und warum sie sich nicht für Unit-Tests lohnen (etwa weil sie in einen End-to-End-Test gehören).

Vorgaben:
- Keine Snapshot-Tests ohne Begründung.
- Kein Zugriff auf internen State, CSS-Klassen oder `data-testid`, wenn es eine zugängliche Query gibt.
- Wenn beim Schreiben der Tests ein Bug oder ein Barrierefreiheitsproblem auffällt, melde es separat; behebe es nicht stillschweigend.
- Erfinde keine Props oder Texte, die nicht im Code stehen; nutze [AUSFÜLLEN], wenn etwas fehlt.

Format: Plan, Codeblöcke mit Dateinamen und eine Liste der Befehle zum Ausführen.

So verwenden Sie ihn

  1. Füge die vollständige Komponente und gegebenenfalls ihre Hooks oder Services ein. 2. Beschreibe in einfachen Worten, was sie aus Nutzersicht tun soll. 3. Führe die Tests aus und füge Fehler wieder ein, um zu iterieren.

Anwendungsbeispiel

Komponente: WarenkorbUebersicht.tsx (Produktliste, Mengenänderung, Bezahlen-Button) · Verhalten: berechnet die Summe neu und zeigt bei Zahlungsfehler eine Meldung · Werkzeuge: Vitest + RTL · Netzwerk: MSW.

Beispielergebnis

Testplan

FallTypPriorität
Mengenänderung berechnet die Summe neuInteraktionHoch
Bezahlen ist während der Verarbeitung deaktiviertInteraktionHoch
Sichtbarer Fehler bei API-AusfallFehlerHoch

WarenkorbUebersicht.test.tsx

import { afterAll, afterEach, beforeAll, expect, it } from 'vitest';
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { http, HttpResponse, delay } from 'msw';
import { setupServer } from 'msw/node';
import { WarenkorbUebersicht } from './WarenkorbUebersicht';

const server = setupServer(http.post('/api/bezahlen', () => HttpResponse.json({ ok: true }))); // [AUSFÜLLEN: echter Endpoint]
beforeAll(() => server.listen());
afterEach(() => server.resetHandlers());
afterAll(() => server.close());

it('berechnet die Summe neu, wenn sich die Menge ändert', async () => {
  const user = userEvent.setup();
  render(<WarenkorbUebersicht />);
  const menge = screen.getByRole('spinbutton', { name: /menge/i });
  await user.clear(menge);
  await user.type(menge, '3');
  expect(screen.getByText(/summe/i)).toHaveTextContent('[AUSFÜLLEN: erwartete Summe]');
});

it('deaktiviert Bezahlen und zeigt bei API-Fehler eine Meldung', async () => {
  server.use(http.post('/api/bezahlen', async () => { await delay(100); return new HttpResponse(null, { status: 500 }); }));
  const user = userEvent.setup();
  render(<WarenkorbUebersicht />);
  const bezahlen = screen.getByRole('button', { name: /bezahlen/i });
  await user.click(bezahlen);
  expect(bezahlen).toBeDisabled();
  expect(await screen.findByRole('alert')).toBeInTheDocument();
});

Die Rollen-Queries schlagen fehl, wenn das Eingabefeld kein zugängliches Label hat – dann liegt das Problem in der Komponente, nicht im Test …

Wichtige Fakten

Kategorie
Programmierung & Entwicklung · React
Ausgabetyp
Code
Niveau
Fortgeschritten
Entwickelt für
ChatGPT, Claude, Gemini und Microsoft Copilot
Verifiziert in
Redaktionelle Prüfung ausstehend
Variablen
Code der Komponente, Zu prüfendes Verhalten, Werkzeuge und Netzwerkaufrufe
Sprache
Deutsch
Preis
Kostenlos, ohne Anmeldung
Aktualisiert
07.11.2026

Häufig gestellte Fragen

Warum nach Rolle statt nach data-testid suchen?

Weil der Test die Seite dann so nutzt wie echte Nutzer oder assistive Technologien. Findet der Test einen Button nicht über Rolle und Namen, findet ihn ein Screenreader vermutlich auch nicht.

Was ist MSW und warum sollte ich es nutzen?

Mock Service Worker fängt Netzwerk-Requests in Tests ab. So testest du die Komponente mit realistischen Antworten, ohne fetch in jedem Test von Hand zu mocken.

Wofür ist dieser Prompt gedacht?

Füge eine React-Komponente ein und erhalte einen Testplan, die Testdatei mit rollenbasierten Queries, user-event und MSW-Netzwerk-Mocks sowie fehlendes Setup.

Mit welchen KI-Tools funktioniert er?

Er ist für ChatGPT, Claude, Gemini und Microsoft Copilot entwickelt. Wir haben ihn in diesen Tools noch nicht überprüft, daher können die Ergebnisse variieren.

Wie passe ich den Prompt an?

Klicken Sie auf „Anpassen“ und füllen Sie die Variablen aus (Code der Komponente, Zu prüfendes Verhalten, Werkzeuge und Netzwerkaufrufe). Der Text wird sofort aktualisiert und lässt sich anschließend mit einem Klick kopieren. Die Werte werden nur in Ihrem Browser gespeichert.

Brauche ich Erfahrung, um ihn zu verwenden?

Er ist für Fortgeschrittene: Es hilft, das Thema zu kennen, um guten Kontext zu liefern und das Ergebnis kritisch zu prüfen.

Ist dieser Prompt kostenlos?

Ja. Jeder Prompt von HomeCasa Prompts ist kostenlos, ohne Anmeldung und ohne Abonnement. Sie können ihn auch in beruflichen Projekten verwenden.

Kann ich der KI-Ausgabe vertrauen?

Betrachten Sie sie als hochwertigen Entwurf: Prüfen Sie Daten, Zahlen und wichtige Aussagen immer, bevor Sie etwas veröffentlichen oder Entscheidungen treffen.

Ähnliche Prompts