ABAP Tools - Quick Actions und Highlighting (ABAP Unit)
Mit dem letzten Release der ABAP Development Tools kamen für die ABAP Entwicklung die Quick Actions im Bereich ABAP Unit dazu, hier schauen wir sie uns etwas näher an.
Inhaltsverzeichnis
In diesem Artikel gehen wir auf die neuen Quick Action und das Code Highlighting im Bereich ABAP Unit ein. Einige Features werden aktuell nur im ABAP Environment in der BTP angeboten, erhalten sicherlich in Zukunft aber auch einen Downport nach On-Premise.
Einleitung
Im ABAP Development Tools Release 3.42 wurden die Quick Action im Bereich ABAP Unit eingeführt. Diese Aktionen sollen beim Schreiben von Unit Tests etwas Arbeit abnehmen und dich als Entwickler schneller machen. Quick Actions sind meist im Code integrierte Icons oder Buttons, die weitere Aktionen im Zusammenhang mit der aktuellen Zeile oder Auswahl auslösen.
Vorbereitung
Zuerst einmal benötigen wir eine kleine Klasse, an der wir die verschiedenen Optionen einmal demonstrieren können. Dazu definieren wir uns eine einfache Klasse mit zwei öffentlichen Methoden.
CLASS zcl_bs_demo_quick_actions DEFINITION
PUBLIC FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS concatenate_string
IMPORTING id_text1 TYPE string
id_text2 TYPE string
RETURNING VALUE(rd_result) TYPE string.
METHODS adding_numbers
IMPORTING id_number1 TYPE i
id_number2 TYPE i
RETURNING VALUE(rd_result) TYPE string.
ENDCLASS.
CLASS zcl_bs_demo_quick_actions IMPLEMENTATION.
METHOD concatenate_string.
rd_result = id_text1 && id_text2.
ENDMETHOD.
METHOD adding_numbers.
rd_result = id_number1 + id_number2.
ENDMETHOD.
ENDCLASS.
Die erste Methode fügt zwei Strings zusammen und die zweite Methode berechnet die Summe zweier Zahlen. Die beiden Methoden nutzen wir gleich für unsere Tests.
Quick Actions
Schauen wir uns im ersten Schritt die Quick Actions an, wie du sie konfigurierst und für dich nutzen kannst.
Konfiguration
Die Quick Actions findest du in den allgemeinen Einstellungen im Menü unter "Window -> Preferences", dann im Dialog unter dem Baum "ABAP Development -> ABAP Unit -> Code Minings".
Dort kannst du verschiedene Optionen aktivieren, in unserem Beispiel aktivieren wir alle Funktionen. Damit die Funktionen nun greifen, solltest du Eclipse einmal neustarten.
Anlage Test
Wechseln wir nun auf den Reiter "Test Classes", um in den Bereich der Testklassen zu kommen, wo üblicherweise unsere Testfälle definiert werden. Dort findest du bereits die erste Aktion.
Wenn du auf die Aktion klickst, wird entsprechendes Testcoding angelegt, dies entspricht den entsprechenden Templates aus Eclipse. In Zukunft könnte hier zum Beispiel per AI schon passende Testmethoden für unsere öffentlichen Methoden definiert werden. Das Ergebnis sieht nun wie folgt aus.
Im nächsten Schritt implementieren wir zwei Testfälle, um etwas Testcoding zu haben. Der erste Testfall wird dabei auf Grün (Erfolgreich) und der zweite auf Rot (Fehlerhaft) laufen. Die entsprechende Implementierung der Testklasse wie folgt:
CLASS ltc_my_unit_test DEFINITION FINAL
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
PRIVATE SECTION.
METHODS run_mathematics FOR TESTING.
METHODS run_strings FOR TESTING.
ENDCLASS.
CLASS ltc_my_unit_test IMPLEMENTATION.
METHOD run_mathematics.
DATA(lo_cut) = NEW zcl_bs_demo_quick_actions( ).
DATA(ld_result) = lo_cut->adding_numbers( id_number1 = 10
id_number2 = 5 ).
cl_abap_unit_assert=>assert_equals( exp = 15
act = ld_result ).
ENDMETHOD.
METHOD run_strings.
DATA(lo_cut) = NEW zcl_bs_demo_quick_actions( ).
DATA(ld_result) = lo_cut->concatenate_string( id_text1 = `Hello`
id_text2 = `ABAP Unit` ).
cl_abap_unit_assert=>assert_equals( exp = `Hello ABAP Unit`
act = ld_result ).
ENDMETHOD.
ENDCLASS.
Ausführung Test
Nachdem wir nun das Coding aktiviert haben, erscheinen die nächsten Quick Action, je nachdem, was du bei der Konfiguration gewählt hast.
Über die verschiedenen "Run" Buttons können wir nun einzelne Testfälle oder die ganze Testklasse ausführen. Im ersten Beispiel führen wir nur die Methode RUN_MATHEMATICS aus und erhalten das Ergebnis direkt im Quellcode eingeblendet.
An der Methode findest du den Status und die Laufzeit, an der Testklasse die Anzahl der ausgeführten Testfälle, sowie den Gesamtstatus. Als zweiten Testfall führen wir nun alle Testfälle der Testklasse aus. Der entsprechende Status kann nun eingesehen werden.
Im Grunde kannst du dann mit dem Fixen des Bugs in der Methode beginnen und diese ausführen, bis das Ergebnis passt. So müssen nicht jedes Mal alle Methoden ausgeführt werden, um das Delta zu validieren.
Highlighting
Die zweite Funktion in diesem Artikel umfasst das Code-Highlighting in ABAP Unit.
Konfiguration
Die Konfiguration findest du in den allgemeinen Einstellungen im Menü unter "Window -> Preferences", dann im Dialog unter dem Baum "ABAP Development -> ABAP Unit -> Test Code Highlighting".
Hier kannst du wieder die verschiedenen Einstellungen aktivieren und hast später noch die Möglichkeit, die Farben für die einzelnen Optionen zu setzen.
Anzeige
Welche Auswirkungen haben die Einstellungen? Oben hattest du bereits die Auswirkungen gesehen und hier noch einmal der Screenshot.
Die einzelnen Bestandteile deines Testcodes werden nun farblich hervorgehoben, je nachdem um welches Objekt es sich handelt. Wenn du mit der Maus über den hervorgehobenen Block gehst, erhältst du eine Information dazu.
Fazit
Damit stehen dir in den ADTs nun zwei zusätzliche Funktionen zur Verfügung, um schnell und einfach Unit Tests zu schreiben, auszuführen und den Test-Code zu analysieren. Die Funktionen haben in Zukunft sicherlich noch Potential für weitere AI Features.
Quelle: