Show TOC

Methoden der Klasse CL_ABAP_UNIT_ASSERTLocate this document in the navigation structure

ABAP-Modultests starten in Testmethoden zu testende Prozeduren und prüfen dann, ob eine erwartete Wirkung eingetreten ist. Mit den Methoden der Klasse CL_ABAP_UNIT_ASSERT kann die Testmethode sicherstellen, dass die Erwartungen erfüllt werden.

Wenn ein Test die Testerwartung nicht erfüllt, werden die Fehler protokolliert und in der Testauswertung dargestellt. Optionale Eingabeparameter der Methoden regeln das Verhalten im Einzelnen.

Verwendung

Die Klasse CL_ABAP_UNIT_ASSERT enthält folgende Methoden zur Überprüfung von Testerwartungen:

  • ASSERT_EQUALS

    Prüft die Annahme, ob zwei Objekte gleich sind. Die Objekte müssen einen vergleichbaren Typ besitzen. Es wird ein tiefer Vergleich durchgeführt, d.h. Tabellen und Strukturen (auch geschachtelt) werden auf den Inhalt ihrer Komponenten geprüft.

    Standardmethode in Testklassen, die mit dem ABAP Unit Wizard generiert worden sind.

    Die Methode ist erweiterbar, um komplexe Prüfungen von ABAP-Objektinstanzen vorzunehmen.

  • ASSERT_DIFFERS

    Stellt die Verschiedenheit zweier elementaren Datenobjekte (Typ SIMPLE) sicher. Sollten die Typen der Datenobjekte nicht ineinander konvertierbar sein, wird einen Prüffehler ausgelöst.

  • ASSERT_BOUND

    Prüft die Gültigkeit der Referenz einer Referenzvariable, indem sie die ABAP-Eigenschaft IS BOUND testet.

  • ASSERT_NOT_BOUND

    Prüft die Ungültigkeit der Referenz einer Referenzvariable, indem sie die ABAP-Eigenschaft IS NOT BOUND testet.

  • ASSERT_INITIAL

    Prüft ein Objekt auf seinen Initialwert, indem sie die ABAP-Eigenschaft IS INITIAL testet.

  • ASSERT_NOT_INITIAL

    Stellt sicher, dass ein Datenobjekt NICHT seinen Initialwert hat (Prüfung auf die ABAP-Eigenschaft IS NOT INITIAL).

  • ASSERT_CHAR_CP

    Stellt sicher, dass eine Zeichenkette zu einem einfachen Muster passt. Mögliche Ersatzzeichen sind Asterisk (*) und Fragezeichen (?). Überprüfen Sie reguläre Ausdrücke mit der Methode ASSERT_TEXT_MATCHES.

  • ASSERT_CHAR_NP

    Stellt sicher, dass eine Zeichenkette nicht zu einem einfachen Muster passt. Mögliche Ersatzzeichen sind Asterisk (*) und Fragezeichen (?). Überprüfen Sie reguläre Ausdrücke mit der Methode ASSERT_TEXT_MATCHES.

  • ASSERT_TEXT_MATCHES

    Stellt sicher, dass eine Zeichenkette die Bedingungen eines regulären Ausdrucks erfüllt.

  • ASSERT_TABLE_CONTAINS

    Stellt sicher, dass ein Datenobjekt als Zeile einer internen Tabelle vorkommt.

  • ASSERT_NUMBER_BETWEEN

    Stellt sicher, dass ein numerischer Wert in einem bestimmten Wertebereich liegt.

  • ASSERT_SUBRC

    Fordert einen bestimmten Wert vom Rückgabewert sy-subrc.

  • ASSERT_EQUALS_FLOAT

    Stellt die annähernde Gleichheit zweier Gleitpunktzahlen sicher. Gültige Datentypen sind DECFLOAT und F.

  • ASSERT_THAT

    Stellt sicher, dass ein Datenobjekt die angegebenen Bedingungen erfüllt. Weitere Informationen finden Sie hier.

  • FAIL

    Bricht einen Test mit Fehler ab.

  • ABORT

    Bricht einen Test ab, weil Testvoraussetzungen nicht gegeben sind.

Methodenparameter

Alle Methoden besitzen die optionalen Importing-Parameter MSG, LEVEL und QUIT mit stets derselben Bedeutung:

  • MSG (Typ: CSEQUENCE) beinhaltet (ggf.) einen den Fehler näher beschreibenden Text

  • LEVEL (Typ: AUNIT_LEVEL) bezeichnet die Fehlerschwere und kann folgende Werte annehmen:

    • TOLERABLE- leichter (ggf. zu tolerierender) Fehler

    • CRITICAL- (Standardwert) kritischer Fehler

    • FATAL- schwerer Fehler

  • QUIT (Typ: AUNIT_FLOWCTRL) beeinflusst die Flusskontrolle im Fehlerfall.

    Folgende Werte können übergeben werden:

    • NO- Kein Abbruch im Fehlerfall, die aktuelle Methode wird nach Aufruf der betreffenden Methode fortgesetzt.

    • METHOD- (Standardwert) Die aktuell bearbeitete Testmethode wird abgebrochen.

    • CLASS- Die aktuell bearbeitete Testklasse wird abgebrochen.

    • PROGRAM- Der Test des aktuell bearbeiteten Rahmenprogramms wird abgebrochen: Die aktuelle Testklasse wird abgebrochen und alle weiteren Testklassen des Programms werden ignoriert.

Alle Assert-Methoden besitzen den nicht-optionalen Importing-Parameter

  • ACT (Typ: Any) - das zu verifizierende Objekt

Die vergleichende Methode ASSERT_EQUALS benötigt darüberhinaus einen Parameter für die Erwartung:

  • EXP (Typ: Any) - ein Datenobjekt mit den erwarteten Werten und Eigenschaften.

Die vergleichende Methode ASSERT_EQUALS_FLOAT bietet darüberhinaus den Parameter

  • RTOL (Typ: f) - erlaubt es, den Vergleich von Fließpunktzahlen auf die übergebene Toleranz durchzuführen.