Gewichte nach Risiko statt nach Pyramiden-Dogma. Unit-Tests für reine Logik und Randfälle, eine solide Schicht Integrationstests gegen eine echte Datenbank im Container, und eine kleine Zahl End-to-End-Tests für die Abläufe, die Geld kosten, wenn sie brechen, etwa Registrierung, Checkout und Login. Mocke Fremdsysteme an der Netzwerkgrenze statt deine eigenen Module zu stubben.
Warum Interviewer das fragen
Der Interviewer will wissen, ob deine Tests echte Bugs fangen oder nur eine Coverage-Zahl aufblasen. Er hört auf Integrationstests gegen eine echte Datenbank, denn das ORM zu mocken ist der häufigste Weg, wie Teams Tests schreiben, die grün sind, während die Produktion bricht. Er will außerdem hören, wie du mit flaky End-to-End-Tests umgehst, denn das ist es, was eine Suite über die Zeit wirklich umbringt.
So baust du deine Antwort auf
- Nenn das Prinzip: teste dort, wo das Risiko ist.
- Beschreib jede Schicht und wofür sie zuständig ist.
- Erklär, wo du die Mocking-Grenze ziehst.
- Sag, wie du die Suite schnell und vertrauenswürdig hältst.
Beispielantwort
Meine Leitregel ist, dass ein Test es wert ist, wenn er einen Bug gefangen hätte, den wir plausibel ausliefern. Reine Logik, Preisregeln, Datumsbehandlung, Berechtigungsprüfungen, bekommt schnelle Unit-Tests mit den fiesen Randfällen. Die Schicht, in die ich am meisten investiere, ist Integration: echter HTTP-Request in die App, echtes Postgres in einem Container, echte Migrationen, dann Response und resultierende Zeilen prüfen. Das fängt die Dinge, die Mocks verbergen, etwa eine Constraint-Verletzung oder eine Query, die still nichts zurückgibt. Fremdsysteme mocke ich an der Netzwerkgrenze, mit so etwas wie MSW oder einem aufgezeichneten Fixture, niemals indem ich meine eigene Service-Klasse stubbe, denn dann teste ich den Mock. End-to-End halte ich bewusst klein, vielleicht acht Journeys über Registrierung, Login, Checkout und den Kernworkflow, laufend bei jedem Merge. Bei Flakiness bin ich gnadenlos; ein Test, der zufällig scheitert, erzieht Leute dazu, die Pipeline neu zu starten, ich repariere oder lösche ihn also binnen eines Tages. Coverage sehe ich als Diagnose, nie als Ziel.
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 baust du Testdaten zwischen Läufen auf und wieder ab?
- Was machst du, wenn ein End-to-End-Test flaky ist?
- Wie testest du eine React-Komponente, die Daten lädt?
Weitere Fragen für Full-Stack-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