Funktionsbausteine testen
In einigen Fällen könnte es erforderlich sein, Funktionsbausteine zu testen oder zu verwenden:
· In einem Einheitstest, bei dem Sie einen einzelnen Funktionsbaustein testen.
· In einem Hintergrundprozess, bei dem Sie eine Kette von Funktionsbausteinen testen, die einen vollständigen Prozess durch die Übergabe von Ergebnissen eines Bausteins zum nächsten darstellen. Diesen Arbeitsschritt können Sie in einem einzelnen Skript oder bei mehreren aneinander gereihten Testskipten durchführen.
· Als Hilfsmittel innerhalb eines Skripts, zum Beispiel, um Daten von der Datenbank, die Sie in Transaktionen verwenden wollen, abzurufen oder um komplexe Plausibitlitätsprüfungen für bereits bestehende Funktionsbausteine vorzunehmen.
Der für den Aufruf von Funktionsbausteinen erforderliche eCATT-Befehl ist FUN. Die Kommandoschnittstelle entspricht der Schnittstelle des Funktionsbausteins. Er ist im Struktur-Editor in Bereiche für die unterschiedlichen Parametertypen unterteilt – Import, Export, Ändern und Tabellen – mit einem zusätzlichen Bereich für Ausnahmen. Für die Übergabe an einen Funktionsbaustein weisen Sie dem korrekten Parameter in der Kommandoschnittstelle das relevante Literal oder die Variable zu. Für das Abrufen eines Wertes von einem Exportparameter des Funktionsbausteins weisen Sie ihm eine Variable zu.
Sie können sowohl den Struktur-Editor für die Zuordnung von Parameterwerten verwenden als auch die Funktionsschnittstelle programmatisch im Befehl-Editor adressieren. Dies ist sinnvoll, wenn Sie beispielsweise Werte dynamisch zuordnen wollen. Ausnahmen können Sie jedoch nicht programmatisch adressieren. Die Syntax ist der ABAP-Syntax für das Adressieren von komplexen Strukturen ähnlich. Wenn Sie mit internen Tabellen arbeiten, müssen Sie den relevanten Tabellenindex in eckigen Klammern angeben. Zum Beispiel:
<Schnittstellennamen>-TABLES-<Tabelle>[<Index>]-<Feldname> = <Wert>.
Fügen Sie FUN-Befehle in die MESSAGE…ENDMESSAGE-Blöcke ein.
Standardmäßig schlägt ein Test fehl, wenn ein Funktionsbaustein eine Ausnahme wirft. Der Funktionsbaustein ECATT_EXISTENCE_CHECK, der prüft, ob ein eCATT-Objekt existiert, kann beispielsweise OBJECT_TYPE_UNKNOWN auslösen.

In einigen Fällen ist es das Ziel eines Tests, dass ein Funktionsbaustein eine Ausnahme auslöst. In diesem Fall soll der Testfall als erfolgreich gekennzeichnet werden, wenn eine Ausnahme geworfen wird. Wenn Sie das Fehlschlagen eines Tests aufgrund einer bestimmten Ausnahme nicht wollen, können Sie ein Kennzeichen neben dieser Ausnahme im Struktur-Editor setzen. In diesem Fall wird der Test, unabhängig davon, ob die Ausnahme auftritt oder nicht, als erfolgreich gekennzeichnet. Das Auftreten der Ausnahme wird dennoch im Protokoll aufgezeichnet. Jede andere Ausnahme führt zum Fehlschlagen des Tests.
Sie können EEC_1-Exception-OBJECT_TYPE_UNKNOWN = 'X'.nicht verwenden. Sie müssen den Wert im Struktur-Editor angeben.

Wenn eine Ausnahme als erfolgreich
definiert ist, bedeutet das nicht automatisch, dass das Skript fehlschlägt,
wenn die Ausnahme nicht ausgelöst wird. Wenn Sie diesen Fall eintreten lassen
wollen, können Sie die spezielle eCATT-Variable &EXCEPTION
im Skript abfragen. Im obigen Beispiel würden Sie beispielsweise die folgende
Zeile einfügen:
CHEVAR ( &EXCEPTION =
'OBJECT_TYPE_UNKNOWN' ).
