SAPUI5 Testing - Übersicht

Brandeis Consulting & Cadao

Warum Testen wichtig ist

Aktuelles Beispiel: Im Tutorial "Testing" von der SAP sind Fehler!

  • Bei einem einfachen durchspielen merkt man, dass bei einem Codeschnipsel zwei Klammern am Ende nicht geschlossen werden.

Mit einem Regressionstests wäre das nicht passiert. ;-)

Brandeis Consulting & Cadao

Testpyramiden - Beispiele

Allerdings finden sich hier viele unterschiedliche Varianten: Grundsätzlich immer der gleiche Aufbau.

Brandeis Consulting & Cadao

Aufbau aller Testpyramiden

Unten

  • Geringe Kosten
    • schnell ausführbar
    • automatisiert
    • kleiner, lokaler Fokus
    • während der Entwicklung
    • schnelles Feedback

Oben

  • Teuer, weil
    • manueller Aufwand
    • große Zeitbedarf
    • Test des Gesamtsystems
    • am fertigen Produkt
    • Korrekturen sind aufwändig

Gemeinsamkeit der Testpyramiden: Die Unittests bilden die Basis.

Brandeis Consulting & Cadao

Test-Frameworks in UI5

  • Unit Tests mit QUnit
  • Integration Tests mit OPA5
  • für Spies, Stubs, Mocks, XHR, und Faked Timers Sinon.JS
    • Spies
      Spies sind Funktionen, die das Verhalten anderer Funktionen überwachen. Sie protokollieren Aufrufe und Parameter, ohne das eigentliche Verhalten zu ändern.
    • Stubs
      sind vereinfachte Implementierungen von Funktionen oder Modulen. Sie ersetzen komplexe Logik durch vordefinierte Rückgabewerte, um Tests zu vereinfachen
    • Mocks
      Mocks sind ähnlich wie Stubs, aber komplexer. Sie simulieren das Verhalten von echten Objekten und können vordefinierte Erwartungen an Aufrufe und Rückgabewerte haben
    • XHR (XMLHttpRequest) Mocking:
      Dies bezieht sich auf das Simulieren von HTTP-Anfragen in Tests, ohne tatsächliche Netzwerkanfragen zu senden.
    • Faked Timers
      Diese simulieren Zeit-bezogene Funktionen wie setTimeout oder setInterval. Sie erlauben es, Zeit in Tests zu "manipulieren", ohne tatsächlich warten zu müssen.
Brandeis Consulting & Cadao

Template Unterstützung

Bei neu angelegten Projekten über den Projekt Wizzard, wird die Grundstruktur für lauffähige Tests vollständig generiert. Hier ein Beispiel für eine Freestyle UI5 App:

Brandeis Consulting & Cadao