Unit-Tests: How to unit test
Artikel 3/3

26. November 2025, 08:00 Uhr · Quelle: Pressebox
In diesem Tutorial lernen Sie, Unit-Tests für ABAP-Klassen zu implementieren. Entdecken Sie den Test-Driven-Development-Ansatz mit einfachen Beispielen.

Isernhagen, 26.11.2025 (PresseBox) - Im dritten Blogbeitrag der Reihe Unit-Tests zeigen unsere Entwickler Max und Basti anhand eines Beispiel-Tutorials die Implementierung von Unit-Tests. Dabei verwenden sie die Entwicklungsumgebung Eclipse und verfolgen den Ansatz des Test-Driven-Developments.

TDD – Test Driven Development

Der erste Schritt, um Unit-Tests in ABAP zu implementieren, ist das Anlegen einer globalen Klasse. Hier implementieren wir später die Logik. Anschließend wird zu dieser Klasse eine Testklasse angelegt. Dort müssen die einzelnen Unit-Tests in Form von Methoden implementiert werden, um die – noch nicht vorhandene Logik – zu testen. In diesem Tutorial nutzen wir Eclipse, da es vieles vereinfacht und sehr gute Funktionen zur Erstellung von Unit-Tests bietet. Außerdem schreiben wir in diesem Tutorial test-driven. Das bedeutet, dass wir den Test vor der Logik schreiben.

Das erklären wir am besten an einer Beispielaufgabe:

Die Aufgabe lautet, wie folgt: Erstellen Sie eine Klasse mit einer Methode, die überprüft, welche Prüfvariante für ein Material mit einer bestimmten Materialart anfällt.

Eingabewert

  • MTART
Mögliche Eingabewerte sind:
  • HALB
  • FERT
  • PROD
  • HAWA
  • …
Mögliche Rückgabeparameter:
  • N – Keine Prüfung
  • V – Vollständige Prüfung
  • S – Schnelle Prüfung
Geschäftslogik:

Für die Ermittlung der Prüfmethode gelten folgende Regeln:

(Grafik 1)

Anmerkung: Die Logik, die wir auf Grund der erdachten Anforderungen implementieren ist sehr simpel. Man könnte meinen, dass es sinnlos ist, Unit Tests für so eine einfache Logik zu erstellen. Im „echten Leben“ sind jedoch wahrscheinlich mehr Eingabeparameter sowie andere Umstände vorhanden, so dass die Logik deutlich komplizierter wird. Für dieses Tutorial verwenden wir bewusst ein simple Logik, um ein Grundverständnis für Unit Tests zu demonstrieren.

Anlage einer neuen globalen Klasse

Die Klasse, die die Ermittlungen durchführen soll, legen wir in Eclipse an:

(Grafik 2)

Diese Klasse bleibt erst einmal leer. Wir implementieren die Logik zu einem späteren Zeitpunkt.

(Grafik 3)

Anlegen der Testklasse

Um eine Testklasse anzulegen, nutzen wir die Registerkarte „Test Classes“, die sich unter dem Quelltextfenster befindet.

(Grafik 4)

Nach der Eingabe von test und der Tastenkombination STRG + space wird von Eclipse das Template testClass zur Implementierung einer Testklasse angezeigt.

(Grafik 5)

Nach Bestätigung der Auswahl testClass und Benennung der lokalen Testklasse wird der folgende Quelltext generiert:

(Grafik 6)

Implementieren der ersten Testmethode

An dieser Stelle werden wir jetzt unsere erste Testmethode schreiben. Erst danach implementieren wir die dazugehörige Logik in die eigentliche Methode. Nach der Regel Materialart „HALB“ sollte das Ergebnis „V“ sein, deshalb sollte darauf geachtet werden auch nur diese zu testen und die Testmethode entsprechend zu benennen.

Um einen einfachen Unit-Test zu implementieren, benötigen wir die Klasse CL_ABAP_UNIT_ASSERT und in diesem Fall deren Methode ASSERT_EQUALS. Mit dieser Methode prüfen wir, ob das erwartete Ergebnis mit dem Ergebnis übereinstimmt, dass die Methode liefert.

An dieser Stelle legen wir durch Vorwärtsdeklaration mit Hilfe von STRG+1 und Create Method die Methode RETURN_CHECK_VARIANT an, in die wir im weiteren Verlauf des Tutorials die Logik implementieren werden.

(Grafik 7)

Die Methode RETURN_CHECK_VARIANT erhält den Eingabeparameter I_MTART sowie den Rückgabeparameter R_RESULT (Prüfvariante).

Der erste Test

Wir sind soweit und können nun den ersten Test durchführen. Dazu verwenden wir die Tastenkombination STRG + SHIFT + F10. Die Testmethode wird an dieser Stelle nicht erfolgreich sein, da die zu testende Methode noch leer ist. Dennoch führen wir den Test zur besseren Veranschaulichung des Beispiels durch:

(Grafik 8)

Im Failure Trace lässt sich jetzt gut ablesen, was als Testergebnis erwartet wurde und was die überprüfte Methode tatsächlich zurückgibt.

“Fehlerbehebung”

Wie wir nun durch die Ausführung des Unit Tests festgestellt haben, ist unser Test fehlgeschlagen. Also ergreifen wir die Gelegenheit: Let’s fix the bug!

Es geht also zur ersten Logik unserer eigentlichen Klasse, die wir unten in der Registerkarte Global Class wiederfinden.

Zuvor hatten wir die Methode RETURN_CHECK_VARIANT angelegt. In diese implementieren wir nun unsere Logik, um den Test zu bestehen:

(Grafik 9)

Ein erneuter Aufruf der Unit Tests zeigt, dass nun das korrekte Ergebnis:

(Grafik 10)

Prinzipiell ist es wichtig zu beachten, dass die Tests den Quelltext der gesamten Methode abdecken (100 % Testabdeckung). Die Überprüfung der Testabdeckung kann über das Menü ganz rechts im ABAP unit View über Rerun with Coverage aufgerufen werden:

(Grafik 11)

Die Quellcodezeilen, die bei der Ausführung der Tests durchlaufen werden, werden in Eclipse durch grüne Markierungen kenntlich gemacht:

(Grafik 12)

Auf dieser Basis kann man jetzt arbeiten und weitere Tests für Materialarten PROD, FERT und z.B. HAWA zu implementieren, bis die gesamte geforderte Geschäftslogik in der globalen Klasse abgebildet wurde.

Fragen und Kontakt

Haben Sie Rückfragen zu Unit-Tests? Einfach schreiben an[email protected]. Unser SAP-Entwicklungs-Team meldet sich bei Ihnen! Leistungen darüber hinaus finden Sie in unseremPortfolio.

Software / ABAP / Unit-Tests / TDD / Eclipse
[pressebox.de] · 26.11.2025 · 08:00 Uhr
[0 Kommentare]
VINUM Weinguide Deutschland 2027
Schlieren, 03.11.2026 (lifePR) - Zehn Jahre VINUM Weinguide, erstmals die Höchstwertung von 100 Punkten, und das gleich zweimal. Die Jubiläumsausgabe dokumentiert ein außergewöhnliches Qualitätsniveau deutscher Weine. Die beiden Spitzenbewertungen gehen an edelsüße Rieslinge von der Mosel und aus dem Rheingau. Weingut des Jahres ist Emrich-Schönleber […] (00)
vor 8 Stunden
US-Midterms - Washington
Washington (dpa) - Bei den wichtigen Kongresswahlen in den USA schließen die ersten Wahllokale. In Teilen der Bundesstaaten Indiana und Kentucky sollte die Stimmabgabe um 18.00 Uhr Ortszeit (Mitternacht MEZ) enden. Da sich die USA über mehrere Zeitzonen erstrecken, zieht sich die Wahl insgesamt sehr lange hin: In weiten Teilen Alaskas und auf Hawaii […] (00)
vor 24 Minuten
Sir Brian May überzeugte The Darkness zu gemeinsamem Song.
(BANG) - Sir Brian May hat die Rockband The Darkness davon überzeugt, gemeinsam mit ihm an dem Song 'Eternia' für den Film 'Masters of the Universe' zu arbeiten. Der Queen-Gitarrist hatte zusammen mit dem Komponisten Daniel Pemberton an der Filmmusik gearbeitet und konnte die durch ihren Hit 'I Believe in a Thing Called Love' bekannte Rockband für eine […] (01)
vor 6 Stunden
KI-Boom treibt Rechenzentren in Deutschland – dennoch bauen USA und China Vorsprung aus
Künstliche Intelligenz wird auch in Deutschland zum entscheidenden Treiber für den Bedarf an Rechenleistung. Bis 2035 wird mehr als die Hälfte (55 Prozent) der Rechenzentrumskapazität in Deutschland für KI und High Performance Computing (HPC) gebraucht – gegenüber 20 Prozent im Jahr 2026 und voraussichtlich 36 Prozent im Jahr 2030. In absoluten Zahlen […] (00)
vor 7 Stunden
Zehn Chancen auf einen Award: REANIMAL bei den Horror Game Awards 2026 nominiert
Zehn. So viele Nominierungen hat REANIMAL bei den Horror Game Awards 2026 bekommen, und wir sind ehrlich gesagt noch etwas sprachlos. Das Horror-Abenteuer von Tarsier Studios über zwei Geschwister auf einer sehr finsteren Insel ist unter anderem als Game of the Year, für die beste Art Direction und den besten Soundtrack nominiert. Dazu kommen sieben […] (00)
vor 2 Stunden
Der 'James Bond'-Filmreihe könnten künftig die Ideen für neue Bösewichte ausgehen.
(BANG) - Der 'James Bond'-Filmreihe könnten künftig die Ideen für neue Bösewichte ausgehen. Grund ist, dass wir inzwischen in einer Welt leben, in der Menschen wie Elon Musk ähnliche Vorstellungen haben wie die Schurken aus den Filmen. Das behauptet der leidenschaftliche 007-Fan Mark Gatiss. Der 'Bookish'-Star ist seit seiner Kindheit von James Bond […] (01)
vor 6 Stunden
Atlético Madrid - FC Bayern München
Madrid (dpa) - Für Jungstar Lennart Karl gab's nach dem Ausrufezeichen des FC Bayern Schulterklopfer und Umarmungen. Im Finalstadion der Champions League hat der 18-Jährige den Titelanwärter aus München gegen Atlético Madrid zu einem wichtigen und eindrucksvollen Vorrundensieg geführt. Beim 2: 0 (0: 0) avancierte ausgerechnet Karl, dessen Form zuletzt […] (03)
vor 1 Stunde
btc, bitcoin, cryptocurrency, currency, crypto, gold, digital, blockchain, cryptography, 3d
Der jüngste Diebstahl von Kryptowährungen im Wert von mehr als $6 Milliarden durch nordkoreanische Hacker hat weitreichende Auswirkungen auf die Krypto-Welt. Caitlin Long, CEO der Custodia Bank, sieht zwei wesentliche Veränderungen: Zum einen erhalten Krypto-Hacks eine geopolitische Dimension, zum anderen könnten Regulierungsbehörden verlangen, dass […] (00)
vor 42 Minuten
 
Vorhofflimmern: Wie kann man sich schützen?
Frankfurt am Main, 02.11.2026 (lifePR) - Kann man dem Störfeuer im Herzen, […] (00)
Opel Grandland Electric: Erster Opel-Pkw mit 22-kW-Onboard-Charger
Rüsselsheim, 03.11.2026 (lifePR) -   Mehr Ladeleistung: Vollelektrische Grandland- […] (00)
Die fiese Masche am Telefon
Vogelsbergkreis, 03.11.2026 (lifePR) - Diese Meldungen sind fast täglich zu lesen, immer wieder […] (00)
Halloween Süßigkeiten
Neustadt-Glewe (dpa) - Ein Kind ist in Mecklenburg-Vorpommern durch eine manipulierte […] (02)
Barbara Becker
(BANG) - Barbara Becker hat am 1. November ihren 60. Geburtstag gefeiert – und denkt […] (00)
Abschlusstraining FC Bayern München
Madrid (dpa) - An das Stadion von Atlético Madrid hat Harry Kane «keine guten Erinnerungen», […] (03)
Mckenna Grace
(BANG) - Mckenna Grace hofft, dass sie sich ihre Leidenschaft für die Schauspielerei […] (00)
Memo: Apple warnt Apple Stores vor Displaybruch beim iPhone Duo
Der kalifornische Konzern hat sich Ende letzter Woche in einem internen […] (01)
 
 
Suchbegriff