Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 4 Min.

Ran an den echten Browser

Wer Frontend-Tests in Node.js ausführt, testet nicht wirklich. Nils Hartmann erklärt, warum der Vitest Browser Mode das ändert – und wie Next.js mit Server Rendering und Caching Performance-Probleme löst, bevor sie entstehen.

Tests, die im Browser laufen, liefern andere Ergebnisse als Tests, die Node.js simuliert. Das klingt selbstverständlich. Ist es aber nicht. Die React Testing Library, das De-facto-Standardwerkzeug für Komponententests in React-Projekten, führt Tests nicht im Browser aus. Sie läuft in Node.js und simuliert dort Browser-APIs wie den DOM. Das funktioniert für viele Szenarien, hat aber einen Haken: Es ist und bleibt eine Simulation. Was genau in einem echten Browser passiert, bleibt außen vor.

Der Vitest Browser Mode geht einen anderen Weg. Tests laufen direkt in echten Browsern – ähnlich wie bei Playwright. Der Unterschied zu Playwright: Dort testet man fertige Anwendungen als Blackbox, End-to-End. Der Vitest Browser Mode testet einzelne Komponenten, also Unit- und Integrationstests, aber im echten Browser-Kontext. Für Nils Hartmann, freiberuflicher Software-Entwickler und -Architekt aus Hamburg, ist das kein akademischer Unterschied. Die Testergebnisse werden schlicht realistischer.

Wer aus der React Testing Library kommt, muss übrigens kein komplett neues API lernen. Die Unterschiede sind überschaubar. Was sich ändert, ist die Laufzeitumgebung – und damit das Vertrauen in die Testergebnisse.

Schneller mit Server Side Rendering

Beim Thema Performance in Next.js hat Nils eine klare Einschätzung: Der größte Hebel ist oft, möglichst viel auf den Server zu verlagern. Server-seitiges Rendering beschleunigt die initiale Ladezeit erheblich, weil der Browser fertiges HTML bekommt statt eine JavaScript-Wüste, die er erst selbst zusammenbauen muss.

Next.js bringt dafür ein ausgefeiltes Caching-System mit. Ganze Seiten lassen sich cachen, einzelne Seitenbereiche ebenfalls. Im Build-Prozess können Seiten sogar vorgerendert werden, sodass der Server bei Anfragen fertige HTML-Dokumente ausliefert. Wer Daten aus mehreren Quellen gleichzeitig braucht, kann die Backend-Requests parallel abfeuern statt sie sequenziell abzuarbeiten.

Eine Frage drängt sich dabei aber auf: Wenn Next.js alles serverseitig vorrendert, auch interaktive Komponenten – ist das nicht doppelte Arbeit? Der Server rendert, der Browser rendert nochmal. Nils bejaht das, erklärt aber auch, warum Next.js diesen Kompromiss bewusst eingeht. Das Ziel ist eine blitzschnelle erste Darstellung. Wenn der Nutzer sofort etwas sieht, ist die oberste Prämisse erfüllt – auch wenn der Browser die Komponente kurz darauf nochmal rendert, um sie interaktiv zu machen. Im Optimalfall merkt der Nutzer davon nichts, weil das Client-seitige Render-Ergebnis dem serverseitigen entsprechen sollte.

Die Grenze zwischen Server- und Client-Komponenten zieht Nils nach einer einfachen Faustregel: Je mehr statischer Inhalt, desto eher ist es eine React Server Component. Je mehr Interaktivität gebraucht wird, desto eher muss die Komponente in den Browser. Technisch ist die Trennung simpel – use client ans Modul schreiben, fertig. Das Gefühl dafür, wann das wirklich sinnvoll ist, kommt mit der Erfahrung.

 

Du willst mehr von React, Next.js und Nils Hartmann erfahren. Dann komm auf die DWX 2026, 29. Juni bis 2. Juli 2026, Mannheim (https://www.developer-world.de/dwx). Hier spricht er über Moderne React Komponenten-Tests mit dem "Vitest Browser Mode" und High Performance Webapps mit Next.js.

 

Nils Hartmann ist freiberuflicher Software-Entwickler und -Architekt aus Hamburg. Seine Schwerpunkte sind die Entwicklung von Backend-Services mit Java sowie Frontend-Applikationen mit React. Er gibt Schulungen und Workshops zu diesen Themen und hat ein Buch über React geschrieben. Weitere Informationen und Kontakt: https://nilshartmann.net

 

Neueste Beiträge

KI: Vorteile nutzen, technische Souveränität bewahren
KI-Agenten bieten nicht nur Vorteile, mit ihrer Nutzung können auch neue, gravierende Risiken für Unternehmen entstehen. Diese lassen sich jedoch mit entsprechenden Maßnahmen beherrschen – wodurch Unternehmen letztlich ihre technische Souveränität sicherstellen.
5 Minuten
14. Sep 2026
Vom Sub-Agenten zum Schwarm - Kimi K3 – das Modell hinter dem Agenten, Teil 5
Mehr Agenten versprechen mehr Tempo, vervielfachen aber auch Abstimmung und Risiko. Ob aus paralleler Aktivität tatsächlich Fortschritt entsteht, entscheidet sich dort, wo spektakuläre Schwarmdemos meist enden.
5 Minuten
CartoType: Einsatz mit Windows Forms - Mapping mit CartoType, Teil 2
Der Big-Tech-freie Kartendienst CartoType kann dazu beitragen, Anwendungen mit Maps-Diensten unabhängiger von Google, Apple und Co. zu machen. In diesem Beitrag soll das System in einer Windows-Forms-Applikation ins Leben gerufen werden.
5 Minuten
7. Sep 2026

Das könnte Dich auch interessieren

Health Checks für Ressourcen - Health Checks in ASP.NET richtig nutzen, Teil 3
Wenn externe APIs stocken, Speicher knapp wird oder Ressourcen an Grenzen laufen, reicht ein grüner Gesamtstatus nicht mehr aus. Wie Health Checks näher an die tatsächlichen Betriebsrisiken heranrücken, ohne den Diagnose-Endpunkt unnötig aufzublähen.
4 Minuten
Health Checks und Kubernetes - Health Checks in ASP.NET richtig nutzen, Teil 4
In Kubernetes entscheidet ein Health Check nicht nur über Sichtbarkeit im Monitoring, sondern auch darüber, ob Traffic fließt oder ein Container neu startet. Hier zeigen wir, warum saubere Grenzen zwischen Liveness und Readiness in produktiven ASP.NET-Anwendungen so wichtig sind.
4 Minuten
Browser-Apps mit Avalonia entwickeln - Avalonia
Klassische UI-Frameworks finden ihren Weg in den Browser
5 Minuten
11. Aug 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige