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

26. November 2025, 08:00 Uhr · Quelle: Pressebox
Unit-Tests: How to unit test
Foto: Pressebox
How to unit test Titelbild - Inwerken AG
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]
Ein Handwerk für alle Sinne: Wie Konditormeister für Auge, Nase und Gaumen arbeiten
Mannheim, 13.03.2026 (lifePR) - Gewöhnlich ist auf diesen Tischen nichts. Jedes Mal, wenn angehende Konditormeisterinnen und -meister für die fachpraktische Prüfung ihre Schautische bestücken, staunt man nicht schlecht, was sich an Süßem und Salzigem so alles kreieren lässt. Und wie unterschiedlich es aussieht, obwohl die Vorgaben doch dieselben sind. […] (00)
vor 1 Stunde
Bundeskanzler Merz reist nach Norwegen
Andenes/Norwegen (dpa) - Bundeskanzler Friedrich Merz (CDU) verschärft den Ton gegenüber US-Präsident Donald Trump und seiner Regierung im Zusammenhang mit dem Iran-Krieg weiter. Bei seinem Besuch in der norwegischen Arktis kritisierte er die befristete US-Erlaubnis für den Kauf russischen Öls mit deutlichen Worten. «Jetzt Sanktionen zu lockern, aus welchen Gründen auch immer, das halten wir für […] (01)
vor 11 Minuten
Adam Lambert
(BANG) - Adam Lambert und Queen haben derzeit keine konkreten Pläne und lassen es momentan ruhig angehen lassen - stattdessen konzentriert sich der Sänger aktuell auf neue Solo-Musik, die bereits in Aussicht ist. Queen trat zuletzt mit Lambert auf der 'The Rhapsody Tour' auf, die 2024 endete, doch Gitarrist Sir Brian May (78) und Schlagzeuger Roger […] (00)
vor 2 Stunden
Russland
Moskau (dpa) - Nach zunehmenden Netzabschaltungen in Russland kursiert im Parlament der Vorschlag, wieder Telefonzellen aufzustellen. Die Wiederbelebung von Telefonzellen, nun mit Internetzugang, sei dringlich geworden, sagte der Duma-Abgeordnete der Kremlpartei Einiges Russland, Igor Antropenko, der staatlichen russischen Nachrichtenagentur Tass zufolge. «Das ermöglicht es Bürgern, sogar in der […] (00)
vor 25 Minuten
Xbox ohne „This is an Xbox“: Was Microsofts stilles Kampagnen-Aus bedeutet
Bei Xbox weht seit einiger Zeit ein neuer Wind – und der hat offenbar auch die Marketingabteilung erfasst. Eine Kampagne, die einst das Gesicht der Xbox-Strategie prägen sollte, ist still und leise aus dem Netz verschwunden. Was steckt dahinter, und wohin steuert Microsoft seinen Gaming-Kurs jetzt? Eine Kampagne, die nie wirklich ankam Die „This is […] (00)
vor 21 Minuten
Aaron Pierre
(BANG) - Aaron Pierre ist nun Teil der Besetzung der Superman-Fortsetzung 'Man of Tomorrow'. Der 31-jährige Schauspieler wird laut 'Deadline' die Figur des John Stewart/Green Lantern – eine Rolle, die er in der kommenden TV-Serie 'Lanterns' spielen wird – in James Gunns Nachfolger des Superhelden-Blockbusters aus dem letzten Jahr auf die Leinwand […] (00)
vor 2 Stunden
Ski-Weltcup in Courchevel
Courchevel (dpa) - Marco Odermatt hat sich im fünften Winter nacheinander den Gesamtsieg im alpinen Ski-Weltcup gesichert. Der Schweizer kam bei der Abfahrt von Courchevel auf den dritten Platz und machte den Triumph im Kampf um die große Kristallkugel rechnerisch perfekt. Zudem gewann der beste Skirennfahrer der Gegenwart vorzeitig die kleine Abfahrts- […] (00)
vor 2 Stunden
coin, currency, ethereum, ether, bitcoin, crypto currency, block chain, finance, dice, digital
Präsident Donald Trump hat eine exklusive Gala und Konferenz für die führenden Investoren der offiziellen Trump (TRUMP) Meme-Münze angekündigt. Diese Veranstaltung soll im April 2026 in Mar-a-Lago stattfinden. Nach der Ankündigung stieg der Kurs des Tokens um mehr als 50%, kurz nachdem er ein neues Allzeittief erreicht hatte. Zweites Gala-Event von […] (00)
vor 24 Minuten
 
Ford verschärft Rückruf beim Kuga Plug-in-Hybrid
Lahr, 12.03.2026 (lifePR) - Ford hat Halter des Kuga Plug-in-Hybrid mit einem neuen […] (00)
AutoROCK digitalisiert die Extrusion: KI erkennt Fehler künftig in Echtzeit
Würzburg, 13.03.2026 (PresseBox) - Das Kunststoff-Zentrum SKZ und das Fraunhofer- […] (00)
1.000 € für Sprachförderung in der Kita
Gierstädt, 12.03.2026 (lifePR) - Förderung von Bildung und Sprachentwicklung im […] (00)
Supermarkt (Archiv)
Essen - Der Konjunktur-Chef des RWI-Leibniz-Instituts für Wirtschaftsforschung, […] (09)
FATAL FRAME II: Crimson Butterfly REMAKE – Erlebt klassischen Horror neu
KOEI TECMO Europe und Entwickler Team NINJA fordern mit der weltweiten […] (00)
YouTube
Bamberg (dpa) - YouTube-Videos, die von einem Sponsor finanziert werden, müssen […] (00)
Primetime-Check: Donnerstag, 12. März 2025
Wie erfolgreich war «Hast du Töne?» bei Sat.1? Punktete Frank Rosin mit seinem «Roadtrip […] (00)
stock, chart, apple, bitcoin, investing, trading, crypto, block chain, vpn, euro
Am Freitag, den 13. März, laufen etwa 27.000 Bitcoin-Optionskontrakte mit einem […] (00)
 
 
Suchbegriff