ABAP Unit is the xUnit adoption for the ABAP language. ABAP Unit is directly embedded into the ABAP development environment and into the ABAP runtime environment.

In ABAP Unit tests are test methods in dedicated test classes. A test class may contain several test methods. The optional methods SETUP() and TEARDOWN() offer the possibility to manage the context of the unit tests. Usually test classes are local classes within the program under tests. The domain code and the test code share this way the same life cycle and are always in sync. The test code can exercise the domain code of the program but not vice versa. This restriction is checked by ABAP runtime system and ensures the pattern "no test code in productive code".

Test execution for single programs is possible from within the editors. Newer versions of ABAP Unit (>= SAP_BASIS 7.02) offer an integration with coverage metrics and a report to schedule automatic test execution with mail notification. ABAP Unit offers no feature to define test suites programmatically. Mass runs for entire packages can be executed with the Code Inspector integration only.


Sample

edit
class tc_Text_Buffer definition for testing.  "#AU Risk_Level Harmless
  private section.
    methods set_Text_And_Get_Text for testing.
endclass.

class tc_Text_Buffer implementation.
  method set_Text_And_Get_Text.
    constants c_Hello_World type string value 'Hello World'.
    data buffer type ref to zcl_Text_Editor_Buffer.
    create object buffer.
    buffer->set_Text( c_Hello_World ).
    cl_Aunit_Assert=>assert_Equals( act = buffer->text exp = c_Hello_World ).
  endmethod.
endclass.