ABAPCLASS_FOR_TESTING - CLASS FOR TESTING
CPI1466 during Backup CPI1466 during BackupDiese Dokumentation steht unter dem Copyright der SAP AG.
CLASS - FOR TESTING
Syntax
... FOR TESTING [RISK LEVEL {CRITICAL|DANGEROUS|HARMLESS}]
[DURATION {SHORT|MEDIUM|LONG}] ... .
Zusätze:
1. ... RISK LEVEL {CRITICAL|DANGEROUS|HARMLESS}
2. ... DURATION {SHORT|MEDIUM|LONG}
Wirkung
Mit dem Zusatz FOR TESTING wird eine Klasse alsTestklasse für das WerkzeugABAP Unit definiert. Testklassen könnenTestmethoden enthalten, die während einesTestlaufs aufgerufen werden.
Eine Testklasse ist in der Regel eine lokale Klasse. Der Quelltext innerhalb einer Testklasse gehört nicht zum produktiven Coding des Programms und wird in Produktiv-Systemen nicht generiert (Steuerung überProfilparameterabap/test_generation). Eine Testklasse und ihreKomponenten können deshalb nicht im produktiven Coding des Programms, sondern nur in anderenTestklassen angesprochen werden. Insbesondere muss eine Unterklasse einer Testklasse selbst eine Testklassesein und mit dem Zusatz FOR TESTING deklariert werden. Als einzige Ausnahme von dieser Regel können Testklassen bei der Definition produktiver Klassen alsFreunde angegeben werden, um das Testen privater Komponenten zu ermöglichen.
Eine lokale Testklasse kann spezielle private Methoden enthalten, die dasFixture für die Tests der Klasse implementieren. Diese Methoden haben folgende vordefinierte Namen:
- Eine Instanzmethode setup, die vor jedem einzelnen Test der Klasse ausgeführt wird.
- Eine Instanzmethode teardown, die nach jedem einzelnen Test der Klasse ausgeführt wird.
- Eine statischeMethode class_setup, die einmal vor allen Tests der Klasse ausgeführt wird.
- Eine statische Methode class_teardown, die einmal nach allen Tests der Klasse ausgeführt wird.
Hinweise
- Neben den Testmethoden und den speziellen Methoden für das Fixture kann eine Testklasse auchbeliebige andere Komponenten enthalten. Diese Komponenten können je nach Sichtbarkeit nur inder eigenen Testklasse oder anderen Testklassen verwendet werden. Somit können beispielsweise Hilfsmethoden für Tests definiert werden.
- Testklassen können von beliebigen anderen, insbesondere globalen, Klassen erben. Dies erlaubt die Implementierung allgemeiner globaler Tests, die in lokalen Testklassen verwendet werden können.
- Seit Release 7.0 können für die Wiederverwendung aufwändiger Testvorbereitungenglobale Testklassen angelegt werden. Globale Testklassen sollten immer abstrakt sein und könnennur in lokalen Testklassen verwendet werden. Alle Instanzmethoden einer globalen Testklasse sind zur Zeit automatisch Testmethoden.
- Bei einer lokalen Klasse, die im Bereich für Lokale Typendes Class-Pools einer globalen Testklasse angelegt wird, darf der Zusatz FOR TESTING nicht verwendetwerden. Bei Hilfsklassen für die globale Testklasse ist der Zusatz nicht notwendig, da derenEigenschaft Testklasse bezüglich der Generierung auf dengesamten Class-Pool wirkt. Für den seltenen Fall, dass eine globale Testklasse selbst getestetwerden soll, können lokale Testklassen wie auch bei anderen globalen Klassen empfohlen im Bereich Lokale Testklassen angelegt werden.
Zusatz 1
... RISK LEVEL {CRITICAL|DANGEROUS|HARMLESS}
Zusatz 2
... DURATION {SHORT|MEDIUM|LONG}
Wirkung
Diese Zusätze ordnen einer Testklasse Testeigenschaftenzu. RISK LEVEL legt die Risikostufe, DURATION die erwartete Ausführungsdauer einesTests fest. Die Testeigenschaften werden bei der Testausführung überprüft. Tests,deren Risikostufe höher als die in einem System erlaubte ist, werden nicht ausgeführt. Tests, die länger als die erwartete Ausführungsdauer laufen, werden abgebrochen.
Hinweise
- Bei SAP-eigenen Testklassen muss eine Risikostufe angegeben werden.
- Die Zusätze RISK LEVEL und DURATION lösen diePseudokommentarefür Testklassen ab. Vorhandene Pseudokommentare werden weiterhin berücksichtigt, sollten aber nicht mehr verwendet werden
PERFORM Short Reference BAL_S_LOG - Application Log: Log header data
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6907 Date: 20120526 Time: 192246 triton ( 252 ms )






