Para crear una clase como clase de test, tenemos que añadir las palabras claves FOR TESTING en la definición de la clase.
CLASSlcl_test DEFINITION FOR TESTING.
PUBLIC SECTION.
METHODStest_factorial FOR TESTING.
ENDCLASS.
Para definir un método de test, tenemos que añadir las mismas palabras claves FOR TESTING en la declaración del método.
En un programa ejecutable, creamos la clase local LCL_CALCULADORA con el método de instancia SUMA que devuelve la suma de dos números. Creamos una clase de test para testear el método.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CLASS lcl_calculadora DEFINITION. | |
PUBLIC SECTION. | |
METHODS suma IMPORTING numero_1 TYPE i | |
numero_2 TYPE i | |
EXPORTING resultado TYPE i. | |
ENDCLASS. | |
CLASS lcl_calculadora IMPLEMENTATION. | |
METHOD suma. | |
resultado = numero_1 + numero_2. | |
ENDMETHOD. | |
ENDCLASS. | |
CLASS lcl_test DEFINITION FOR TESTING | |
RISK LEVEL HARMLESS | |
DURATION SHORT. | |
PUBLIC SECTION. | |
METHODS test_suma FOR TESTING. | |
ENDCLASS. | |
CLASS lcl_test IMPLEMENTATION. | |
METHOD test_suma. | |
DATA: lr_calculadora TYPE REF TO lcl_calculadora , | |
lv_resultado TYPE i. | |
CREATE OBJECT lr_calculadora. | |
lr_calculadora->suma( EXPORTING numero_1 = 8 | |
numero_2 = 6 | |
IMPORTING resultado = lv_resultado ). | |
cl_aunit_assert=>assert_equals( | |
EXPORTING | |
exp = 20 " Data Object with Expected Type | |
act = lv_resultado " Data Object with Current Value | |
msg = 'Suma incorrecta' " Message in Case of Error | |
* level = " Error Severity | |
* tol = " Tolerance Range for Floating Point Numbers | |
* quit = " Flow Control in Case of Error | |
* ignore_hash_sequence = ABAP_FALSE " Ignore change sequence in hash tables | |
* RECEIVING | |
* assertion_failed = " Condition not met | |
). | |
ENDMETHOD. | |
ENDCLASS. |