SAPUI5 Testing - Übersicht

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. ;-)

Testpyramiden - Beispiele

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

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.

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.

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: