Show TOC

Behandlung von Ausnahmen in ABAP-ModultestsLocate this document in the navigation structure

Vorgehensweise

Wie sollen Ihre ABAP-Modultests Ausnahmen aus dem getesteten Code behandeln?

Erstens fängt ABAP Unit unerwartete Ausnahmen ab, sogar nicht-abfangbare Ausnahmen. Wenn eine Ausnahme auftritt, schlägt der ABAP-Modultest fehl, und die Ausnahme wird als Grund für das Fehlschlagen gemeldet.

Wenn eine getestete Methode in ihrer Signatur eine Ausnhame deklariert, dann kann die Testmethode das Weiterleiten dieser Ausnahme zur Laufeit von ABAP Unit erlauben. Es ist am besten, wenn die Testmethode die Ausnahme deklariert, so dass das mögliche Verhalten der Methode klar wird. Die Testmethode sollte die Ausnahme nicht abfangen.

METHODS test_a_method FOR TESTING
  RAISING cx_sy_zerodivide.
...
METHOD test_a_method.
...
* Method under test declares 
* CX_SY_ZERODIVIDE in its signature...
* The exception is passed to the ABAP 
* Unit runtime, if it occurs...
  cut->divide_by_zero( nominator = 5 ).
...
ENDMETHOD.

         

Wenn Sie in dem getesteten Code Ausnahmen provozieren, dann können Sie die Methode FAIL von CL_ABAP_UNIT_ASSERT verwenden, um das Fehlschlagen eines Tests zu melden.

* In a test method, you catch 
* a provoked exception
TRY.
    cut->divide_by_zero( denominator = 1).
  CATCH cx_sy_zerodivide.
ENDTRY.
        cl_abap_unit_assert=>fail(
  msg = 'CX_SY_ZERODIVIDE not raised'
  level = if_aunit_constants=>critical ).