Zum Hauptinhalt springen

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. Die Seiten werden dann in einem 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.

End-to-End-Tests​

Typische Benutzerinteraktionen bedeutet die Verwendung mehrerer Komponenten. End-to-End-Tests (e2e) bedeutet, Gruppen von Komponenten, eine ganze Seite oder sogar mehrere Seiten in einer App zu testen. Sie schreiben Tests, die Aktionen wie „Klicken“, „Felder ausfüllen“, „Elemente mit Drag & Drop ziehen und ablegen“ und andere Aktionen ausführen, die ein Benutzer ausführen würde.

End-to-End ist die robusteste und am einfachsten zu planende Möglichkeit, um die Funktionalität Ihrer App zu überprüfen. 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.

Visualisierung​

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 mit testcafe bei der Verwendung von hummerhead, das gelegentlich dazu führen kann, dass Micro Frontends beim Rendern fehlschlagen. 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 in der Regel Folgendes:

  • 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 Calback 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 Workflow​

Um die Entwicklung zu vereinfachen, empfehlen wir den folgenden Workflow:

  • 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 auf Barrierefreiheit (dies kann das Look and Feel Ihrer App verändern!)
  • Fügen Sie visuelle Tests hinzu, um das beabsichtigte Look and Feel Ihrer Komponente, Komponentengruppe oder Seite zu erfassen.
  • Stellen Sie sicher, dass Ihre Tests in TeamCity bei jeder Pull-Anforderung ausgeführt werden und erfolgreich verlaufen.