ABAP Unit Test Wizard

In diesem Beitrag zeige ich, wie eine Testklasse bequem per Wizard erstellt werden kann. Es soll eine Methode getestet werden, welche Datumskonvertierungen vornimmt. Ich werde dieses Beispiel auch bei den restlichen Beiträgen verwenden.

Die zu testende Methode heißt DATE_2_INTERNAL_FORMAT. Sie ist eine statische Methode der Klasse Z_CL_CONVERSION_TOOLBOX

Der Vollständigkeit halber hier der Code der Methode. Dieser Code soll geprüft werden.

Aufruf des Wizard

Der Wizard kann aus der SE80 per Rechtsklick auf den Klassennamen -> "Anlegen -> Testklasse generieren" aufgerufen werden.

ABAP Unit Test Wizard 1
ABAP Unit Test Wizard 1

ABAP Unit Test Wizard 2
ABAP Unit Test Wizard 2

Der Wizard erfragt nun, was getestet werden soll. Die Felder unterscheiden sich je nach Testobjekt, also ob es eine Klasse oder Funktionsbaustein etc. ist. In unserem Falle müssen wir angeben, dass wir eine globale Klasse testen wollen.

ABAP Unit Test Wizard 3
ABAP Unit Test Wizard 3

Nun erfolgt die Angabe des Testklassennamens. Über den "Neu" Button können wir eine neue Testklasse erstellen. Dann werden auch die Optionsfelder eingabebereit.

ABAP Unit Test Wizard 4
ABAP Unit Test Wizard 4

Bei den Optionen wählen wir alle aus. Damit werden bereits alle SETUP und TEARDOWN Methoden erstellt sowie ein Rumpf der Testmethode inklusive des Aufrufs der zu testenden Methode (method under test) und der Auswertung des Ergebnisses.

Anschließend werden alle Methoden ausgewählt, die getestet werden sollen. Da die Beispielklasse nur über eine Methode verfügt, wird nur diese im Grid angezeigt.

ABAP Unit Test Wizard Methodenauswahl
ABAP Unit Test Wizard Methodenauswahl

Pro ausgewählte Methode wird eine eigene Testmethode erstellt.

Abschließend wird noch eine Zusammenfassung angezeigt.

ABAP Unit Test Wizard Summary
ABAP Unit Test Wizard Summary

Nun ist der Wizard mit seiner Arbeit fertig. Wie im Objektbaum zu sehen, wurde innerhalb der Klasse Z_CL_CONVERSION_TOOLBOX eine lokale Klasse Z_CL_DATE_2_INTERLA_UNIT_TEST angelegt.

Objektbaum mit Testklasse
Objektbaum mit Testklasse

Der Quellcode der Klasse sieht so aus

Wird die lokale Klasse gespeichert und aktiviert, fragt das System nach einem Transportauftrag. Wie in den Grundlagen zum Unit Test beschrieben, werden die lokalen Testklassen auch ins produktive System übertragen. Hier können sie aber nicht gestartet werden.

Im nächsten Beitrag zeige ich, wie Testdaten angelegt werden können.