Teste Verhalten auf der Ebene, auf der ein Nutzer es erlebt. Komponententests, die eine Komponente rendern und über sichtbaren Text und Rollen mit ihr interagieren, fangen die meisten Bugs pro Aufwand; reine Unit-Tests passen zu Logik wie Formatierung und Reducern; ein kleiner Satz End-to-End-Tests deckt die kritischen Wege wie Signup und Checkout ab. Meide Tests, die auf Implementierungsdetails prüfen, weil sie bei jedem Refactor brechen, ohne echte Regressionen zu fangen.
Warum Interviewer das fragen
Der Interviewer will Urteilsvermögen zu Kosten und Nutzen sehen und keine Testpyramide heruntergebetet bekommen. Frontend-Tests sind berüchtigt brüchig, es wird also darauf gehört, wie du Kopplung an die Markup-Struktur vermeidest, wie du Netzwerkaufrufe behandelst und ob du eine Meinung zu Snapshot-Tests hast. Es sagt außerdem, ob du eine Suite hinterlässt, der die nächste Person vertraut.
So baust du deine Antwort auf
- Nenn das Prinzip: teste, was der Nutzer tut, nicht wie es gebaut ist.
- Ordne jeder Art von Code einen Testtyp zu.
- Erklär, wie du mit Netzwerk und Zeit umgehst.
- Nenn eine Praxis, die du vermeidest, und warum.
Beispielantwort
Meine Regel ist, dass ein Test scheitern soll, wenn das Verhalten bricht, und ein Refactor ihn überleben soll. Die meisten meiner Tests rendern also eine Komponente und bedienen sie so, wie ein Nutzer es täte, und finden Elemente über Rolle und Label statt über Test-Ids oder Klassennamen, wodurch nebenbei die Barrierefreiheit der Komponente mit geübt wird. Reine Logik wie ein Datumsformatierer oder ein Reducer bekommt schlichte Unit-Tests, weil die billig und schnell sind. Dazu eine kleine End-to-End-Suite in Playwright über die Wege, die Geld kosten, wenn sie brechen: Registrieren, Einloggen, Checkout. Netzwerkaufrufe fange ich an der Grenze mit einem Mock-Server ab, statt die fetch-Funktion zu mocken, damit der Test meinen echten Request-Code abdeckt. Was ich vermeide, sind große Snapshot-Tests, weil niemand einen Diff über zweihundert Zeilen prüft und sie blind abgenickt werden, und alles, was auf internen Zustand prüft. Worauf ich außerdem bestehe: End-to-End-Tests laufen gegen eine geseedete Umgebung, denn flackernde geteilte Daten sind der Grund, warum Teams anfangen, rote Builds zu ignorieren.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Wie verhinderst du, dass End-to-End-Tests flaky werden?
- Wie testest du eine Komponente, die ihre Daten selbst lädt?
- Wo passen visuelle Regressionstests für dich hin?
Weitere Fragen für Frontend-Entwickler
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen