Test-Units

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

Test-Units

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Hallo zusammen!

Wenn ich Test-Units verwende, dann verwende ich normalerweise eine Methode für einen Check.
Dann wird ein fehlgeschlagener Test auch so gekennzeichnet und erfolgreiche Tests werden quittiert mit:
Verarbeitet: 1 Programme, 1 Klassen, 5 Testmethoden
Ich kann in einer Methode auch nur einen Test durchführen.
Wenn ich mehrere Tests durchführen möchte, z.B. weil ich die Testdaten einlese oder generisch ermittele, dann möchte ich jedoch gerne, dass jede Prüfung als einzelner Testfall "erkannt" wird.

Beispiel:
Ich möchte eine Testklasse für Primzahlen prüfen.
Anstatt nun für ausgewählte Zahlen zu prüfen

Code: Alles auswählen.

cl_aunit_assert=>assert_equals(
      act = NEW lcl_primzahl( )->check( 17 )
      exp = abap_true
      msg = '17 ist eine Primzahl!' ).
möchte ich das generisch für die ersten 100 Zahlen machen:

Code: Alles auswählen.

DO 100 TIMES.
cl_aunit_assert=>assert_equals(
      act = NEW lcl_primzahl( )->check( sy-index )
      exp = zcl_prime=>check( sy-index )
      msg = 'Fehler für:' && sy-index ).
ENDDO.
Kann ich per Programm "Testfälle" hinzufügen??

Ich habe mal die CL_AUNIT*-Klassen durchgeschaut, aber nichts passendes gefunden... :(

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


Re: Test-Units

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Danke an black_adept!
Durch den Zusatz "quit = if_aunit_constants=>no" bei cl_aunit_assert=>assert_* wird die Verarbeitung Methode nicht abgebrochen.
Der Parameter steht per Default auf "METHOD" (es wird also bei einem Fehler die Verarbeitung der aktuellen Methode abgebrochen).

so tauchen immerhin alle Meldungen im Fehlerprotokoll auf.
Die Erfolgsmeldung sagt jedoch weiterhin "Verarbeitet: 1 Programme, 1 Klassen, 5 Testmethoden".
Was ja technisch auch richtig ist. Es fehlt im Grunde ein Hinweis auf die Anzahl der verarbeiteten "Testfälle", von denen es nach meinem Wunsch eben gerne mehrere innerhalb einer Methode geben darf.

Re: Test-Units

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Mehrere Testfälle pro Testmethode sind nicht vorgesehen. (Viel Quatsch gelöscht).

Ich mache das dann so wie du schon beschrieben hast (ASSERT ohne Abbruch), das reicht mir als Auflösung.

Ralf

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
ewx

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

Re: Test-Units

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Hey Enno, irgendwie kommt mir die Frage bekannt vor :o)

Die Method ASSERT_EQUAL hat einen Rückgabeparameter. Und wenn der ABAP-True ist war die Assertion erfolgreich. Damit jetzt alle Tests markiert werden würde ich im erfolgreichen Fall einen 2. ASSERT hinterherschicken, der auf die Bretter geht aber nicht als kritisch oder fatal sondern als tolerierbar gekennzeichnet wird. Macht natürlich nur Sinn wenn du -wie in deinem speziellen Fall - sonst so was nicht hast, aber damit werden dann alle Tests in der Liste gezeigt

Code: Alles auswählen.

      IF cl_aunit_assert=>assert_equals( act   = actutal_value
                                         EXP   = expected_value
                                         msg   = 'Echter test'
                                         quit = if_aunit_constants=>no
                                        ) = abap_true.
        cl_aunit_assert=>assert_equals( act   = 1
                                        exp   = 2
                                        msg   = 'Test passed'
                                        quit = if_aunit_constants=>no
                                        level = cl_aunit_assert=>tolerable ).
      ENDIF.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
ewxIcke0801

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1403
Views
Kovertierbarkeit von UNITS
von supermario73 » 16.04.2008 10:52 • Verfasst in ABAP® für Anfänger
0
Antw.
828
Views
Auspacken von Handling Units im Transport
von Bastian.Reitz » 20.01.2020 16:42 • Verfasst in ABAP® Core
2
Antw.
2447
Views
Zeile aus ALV Grid auswählen (Handling Units)
von hsa » 24.03.2016 15:26 • Verfasst in ABAP® Core
1
Antw.
1077
Views
test
von bibip2k » 16.02.2005 18:52 • Verfasst in ABAP® für Anfänger
1
Antw.
912
Views
test
von Besi » 13.07.2005 09:46 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140