Das zentrale Element von Unit Tests sind die verwendeten Testklassen. Diese sollten nicht über Parameter verfügen und sind somit in Ihrer Anwendung und Interpretation eindeutig.

Diese Form von Tests sind in Produktivmandanten nicht ausführbar, es besteht also keinerlei Gefahr sich durch die Tests selber zusätzliche Systemlast oder andere Nebenwirkungen einzuhandeln. Auch auf Entwicklerebene bringen Testklassen eine Reihe von individuellen Eigenheiten mit sich.

Eigenschaften von Testklassen

      • Eine in der Klasse definierte Testdauer und Risiko
      • Eine Class_Setup Methode, welche einmalig bei Erstellung der Klasse aufgerufen wird.
      • Eine Setup Methode, welche vor jeder Testmethode aufgerufen wird.
      • Die Testmethoden selbst, welche designed sind mit dem Hintergedanken eine Funktion zu kapseln und gegen ein erwartetes Ergebnis zu vergleichen.
      • Eine Teardown Methode, welche am Ende jeder Testmethode aufgerufen wird.
      • Eine Class_Teardown Methode, welche einmalig nach der letzten Teardown Methode aufgerufen wird.

Praktisch an diesem Framework ist Beispielsweise das automatische Rollback, welches sich im Anschluss an die Ausführung der getesteten Methoden anschließt (Teardown). Es ist weiterhin absolut Empfehlenswert zumindest einmal jeden Testfall zuerst zu einem Fehlerfall geführt zu haben, bevor er korrekt implementiert wird. Dadurch kann verhindert werden, dass die Prüfung des Testfalls selbst einen Fehler enthält. Das ist zwar unwahrscheinlich aber kostet keine Zeit und kann durchaus enorm wichtig werden. Die Chance fehlerhaften Quellcode der mit einem fehlerhaften Testfall überprüft wird wiederzufinden ist Erfahrungsgemäß äußerst gering.

E-Book: SAP ABAP- und Fiori-Entwicklungsrichtlinien

Richtlinien zur Programmierung und Praxistipps zum Thema ABAP-Entwicklung.

An dieser Stelle direkt eine kleine Warnung. Die getesteten Methoden dürfen sich nicht aufeinander beziehen. Das liegt daran, dass die Ausführung der zu testenden Methoden nicht definiert werden kann.

Wer jetzt noch tiefer in das Detail einsteigen möchte und gerne einmal die Funktionsweise Live und in Farbe sehen möchte, den verweise ich gerne auf den dritten Teil der zugehörigen Blogserie mit dem Thema: “Unit Testing Hands on Beispiel”.