Unit-Tests von anderen Klassen starten

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Unit-Tests von anderen Klassen starten

Beitrag von ralf.wenzel (Top Expert / 3983 / 207 / 281 ) »
Moin,

ich habe folgendes Problem: Ich habe in einer Klasse (nennen wir sie ZCL_A) Änderungen zu machen, die in einer von n Klassen (ZCL_1, ZCL_2, etc.) zu Unit-Test-Fehlern führen. Das fällt aber nicht bzw zu spät auf, weil diese Klassen nicht mit im Transportauftrag stehen.

Jetzt denke ich mir folgendes: Wenn es in ZCL_A einen Unit-Test gäbe, der die Tests in ZCL_1, ZCL_2, ... ausführen würde, würde eine Freigabe des Transports von ZCL_A auf einen Fehler laufen. Dafür müsste der Unit-Test auf einen Fehler laufen, wenn einer der Unit-Tests der n Klassen auf einen Fehler läuft.

Alternativ könnte man ZCL_1, ZCL_2, etc. auch in den Transport mit aufnehmen, aber wenn ich daran denke, denke ich auch dran, deren Unit-Tests auszuführen.

Ich brauch was Idioten.... ähhh... Ralf-sicheres 😉


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Unit-Tests von anderen Klassen starten

Beitrag von a-dead-trousers (Top Expert / 4475 / 228 / 1203 ) »
Ich hab deswegen angefangen meine Unit-Tests in abstrakten Klassen AUßERHALB der eigentlich zu testenden Klassen zu organisieren. Dadurch ist der "Rumpf" der in den Klassen verbleiben muss (SETUP, TEARDOWN, etc.) nur noch sehr klein und fällt bei einer Kopie bzw. Verwendung in einer anderen Klasse daher kaum ins Gewicht. So kann man dann die notwendigen Tests bei allen abhängigen Klassen ebenfall ohne viel Aufwand einbinden (... INHERITING FROM ... ).

Alternativ haben wir bei uns auf dem Entwicklungssystem auch einen täglich laufenden Job der alle vorhandenen Unit-Tests ausführt und das Ergebnis per Mail versendet. Das hilft zwar nicht für die Transportfreigabelogik aber zumindest sieht man noch relativ zeitnah wenn man ein Upsi gebaut hat.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Unit-Tests von anderen Klassen starten

Beitrag von ralf.wenzel (Top Expert / 3983 / 207 / 281 ) »
Das machen wir bei jedem Transport auf einem Staging-System. Ich will es aber vor dem Transport wissen 😉


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Unit-Tests von anderen Klassen starten

Beitrag von ewx (Top Expert / 4899 / 327 / 645 ) »
Liegt da nicht ein Design-Fehler vor, wenn das passiert, was du beschrieben hast, Ralf?

Ansonsten könntest du einen kleinen Runner bauen, der in ZCL_A die entsprechen Unit Tests für ZCL_n durchführt.

Re: Unit-Tests von anderen Klassen starten

Beitrag von ralf.wenzel (Top Expert / 3983 / 207 / 281 ) »
Nein, ist es nicht. Es ist gar nicht so selten, dass man eine Klasse ändert und das Auswirkungen auf die Unit-Tests einer anderen Klasse hat. Oft testet man mit Unit-Tests auch ganze Prozess-Teile. Hatte ich z. B., als ich IDOCs erstellt habe und wissen wollte, ob aus dem Objekt, das ich hatte, korrekte IDOCs erstellt werden. Die IDOC-Erstellung funktioniert ja, die Frage ist, ob ich auch hinreichend Daten dafür übergebe oder ob was fehlt. Das sehe ich erst, wenn ich das IDOC erstellt habe.

Wenn ich SICHER und final wüsste, welche Daten übergeben werden müssten, müsste ich nicht testen 😉 Also rufe ich den "IDOC-Ersteller" der SAP auf, um zu sehen, ob da ein Fehler entsteht oder nicht. Der befindet sich in einer anderen Klasse von mir.

Wirklich völlig unabhängig Unit-Tests hab ich bisher selten gesehen. Eigentlich müsste man z. B. Buchungen testen ohne Rückgriff auf das Customizing, aber wer mockt schon das ganze Customizing, das für eine Buchung notwendig ist? Sowas wie Buchungsschlüssel kann man schlichtweg voraussetzen.

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Unit-Tests von anderen Klassen starten

Beitrag von black_adept (Top Expert / 4154 / 134 / 958 ) »
ralf.wenzel hat geschrieben:
13.12.2025 20:13
Alternativ könnte man ZCL_1, ZCL_2, etc. auch in den Transport mit aufnehmen, aber wenn ich daran denke, denke ich auch dran, deren Unit-Tests auszuführen.
Die Unit-Test werden üblicherweise mittels "SUBMIT" in einem eigenen Kontext ohne globale Daten etc. ausgeführt. Und wohl auch mit gutem Grund. Damit hast du eigentlich recht schlechte Karten das zu tun was du ursprünglich vorhast.

Andererseits hast du doch mit dem obigen Kommentar eine recht einfache Lösung vorgegeben.

Schreib einen Unit-Test in Klasse ZCL_A, der prüft ob in allen offenen Transportaufträgen für Teilobjekte oder das gesamte Objekt ZCL_A auch die anderen Klassen vorhanden sind.

Und wenn du es "schick" oder einfach wiederverwendbar haben willst machst du das nicht hart codiert sondern über eine anzulegende Abhängigkeitentabelle, welche du rekursiv abklappern kannst.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Unit-Tests von anderen Klassen starten

Beitrag von ewx (Top Expert / 4899 / 327 / 645 ) »
BAdI CTS_REQUEST_CHECK
Alle Klassen in den Paketen ermitteln und dort einen runner darauf ausführen und auswerten.

Re: Unit-Tests von anderen Klassen starten

Beitrag von ralf.wenzel (Top Expert / 3983 / 207 / 281 ) »
😂 Danke Enno für den Link auf meinen eigenen Thread. Ich hatte noch im Hinterkopf, dass ich meinte, sowas Ähnliches schon mal gehabt zu haben (in ganz anderem Kontext), aber jetzt weiß ich es.

Ralf *wird wohl langsam alt
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Vergleichbare Themen

0
Antw.
2269
Views
ABAP Unit Tests
von jocoder » 21.07.2017 15:25 • Verfasst in ABAP Objects®
9
Antw.
2927
Views
Sinn von Unit-Tests
von SaskuAc » 03.04.2019 13:33 • Verfasst in ABAP® für Anfänger
4
Antw.
922
Views
EHP 8 -- Unit-Tests in Funktionsgruppen
von ralf.wenzel » 16.08.2022 10:03 • Verfasst in ABAP® Core
7
Antw.
6140
Views
Report zum Ausführen von Unit-Tests
von ralf.wenzel » 08.01.2022 19:01 • Verfasst in ABAP Objects®
20
Antw.
9899
Views
Globale Klassen oder Lokale Klassen
von ZF_SAPler » 29.11.2022 13:47 • Verfasst in ABAP® für Anfänger

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.