Testübersicht
Was muss getestet werden?
Jutro-Apps folgen der React-Philosophie der Zusammenstellung aus Komponenten. Jutro-Benutzeroberflächen werden ausgehend von atomaren Komponenten erstellt. Diese Komponenten sind in Seiten unterteilt. Seiten werden über einen Grundriss verwaltet.
Jeder Teil der Benutzeroberfläche ist technisch gesehen eine Komponente, sogar eine Seite ist eine Komponente. Das Testen Ihrer App ist also gleichbedeutend mit dem Testen von Komponenten.
e2e (durchgängiges Testen)
Typische Benutzerinteraktionen erfordern die Verwendung mehrerer Komponenten. e2e-Testing bedeutet das Testen von Gruppen von Komponenten, einer ganzen Seite oder sogar mehrerer Seiten in einer Anwendung. Sie schreiben Tests, wie „Klicken“, „Felder ausfüllen“, „Elemente ziehen und ablegen“ und andere Aktionen, die ein Benutzer durchführen würde.
e2e ist der robusteste Weg, um die Funktionalität Ihrer App zu überprüfen, und der am einfachsten zu planende. Sie spiegeln Ihre wichtigsten User Journeys in den Tests wider und Sie können immer sicher sein, dass die Benutzer das tun können, was sie in Ihrer App tun müssen.
Visuell
Visuelle Tests in Jutro basieren auf TestCafe. TestCafe erstellt einen Screenshot und vergleicht ihn mit einem früheren Screenshot. Auf diese Weise können Sie versehentliche Änderungen erkennen.
Um die Konsistenz zu gewährleisten, führen Sie die Tests mit bestimmten Browsern aus, normalerweise in einem Docker-Image.
Bekannte Probleme
Es gibt ein bekanntes Problem bei testcafe mit der Verwendung von hummerhead, das dazu führt, dass Micro Frontends nicht nach dem Zufallsprinzip gerendert werden. Um dieses Problem zu beheben, führen Sie eine Aktualisierung von testcafe auf Version 3.x.x durch, da neuere Versionen nicht standardmäßig hummerhead verwenden. Verwenden Sie bei Bedarf die Option --disableNativeAutomation.
Unit
Einige Funktionen sind theoretischer als Benutzerinteraktionen. Mit Unit-Tests können Sie bestätigen, dass selbst sehr kleine Teile Ihrer App wie vorgesehen funktionieren. Beim Schreiben von Unit-Tests für Jutro-Apps testen Sie Dinge wie:
- prüfen, ob die Anwendung ohne Absturz gerendert wird
- prüfen, ob eine auf Metadaten basierende Komponente gültige Metadaten hat
- prüfen, ob eine Funktion, die lange Beschreibungen kürzen soll, tatsächlich Zeichenketten der angegebenen Länge zurückgibt und nicht abstürzt, wenn die Beschreibung kürzer als die angegebene Länge ist
- prüfen, ob ein Rückruf aufgerufen wird
- prüfen, ob ein Nebeneffekt die entsprechende Anzahl von Malen ausgelöst wird
Barrierefreiheit
Barrierefreiheitstests (a11y) zeigen Probleme auf, die Menschen haben können, wenn sie Ihre App mit Einschränkungen bei Seh- oder Hörvermögen, der Mobilität oder mit anderen Behinderungen verwenden. Wir verwenden jest-axe zum automatischen Testen der a11y-Grundlagen, es wird jedoch dringend empfohlen, manuelle Tests durchzuführen. Nur so können Sie das gewünschte Niveau an Barrierefreiheit in Ihrer App sicherstellen.
Grundlegende Informationen zum Arbeitsablauf
Um die Entwicklung zu vereinfachen, empfehlen wir den folgenden Arbeitsablauf:
- 🧪 Schreiben Sie einen e2e-Test für Ihre Funktionalität.
- 😊 Schreiben Sie Unit-Tests, um alle kleinen Details jeder einzelnen Komponente zu definieren.
- 💻 Entwickeln Sie die einzelnen Komponenten, um die Gesamtfunktionalität aufzubauen, bis alle Tests bestanden sind.
- ♿️ Überprüfen Sie die Barrierefreiheit (dies kann das Erscheinungsbild Ihrer App verändern!)
- 🎨 Fügen Sie visuelle Tests hinzu, um das beabsichtigte Aussehen Ihrer Komponente, Komponentengruppe oder Seite zu erfassen.
- 🚥 Stellen Sie sicher, dass Ihre Tests in Teamcity bei jeder Pull-Anforderung laufen und erfolgreich sind.