✒️ABAP POO ABAP Unit
ABAP POO ABAP Unit
VIDEO – ABAP UNIT
Que es ABAP UNIT?
Es un mecanismo con el que implementar unitarios o de modulos en ABAP
Que es un TEST unitario UNIT TEST?
Es un test que valida el funcionamiento correcto de una porción de codigo
Que es una unidad UNIT?
Es una porción de código, por ejemplo, un meto, un form, una función, donde una entrada dada produce un efecto verificable.
Idealmente es la parte más pequeña de código que pueda ser verificad aisladamente.
Como se programa un TEST ABAP Unit?
Se implementan como una clase local ABAP definida como “FOR TESTING”
Esta clase local ha de formar parte de la clase, grupo de funciones o programa que se quiere verificar.
Porque los ABAP UNIT forman parte del código ABAP?
Los unit test están sincronizados con el código que validan
Los unit test no forman parte del programa que se transporta a producción, por lo tanto no producen perdidas de rendimiento.
Que servicios provee ABAP Unit?
La clase que ofrece es CL_AUNIT_ASSERT que contiene métodos estáticos para comparar datos que validen el test definido.
Los métodos más importantes de la clase son:
ASSERT_EQUALS: chequea la igualdad de dos objetos de datos.
ASSERT_DIFFERS: chequea la diferencia entre dos objetos.
ASSERT_BOUND: chequea la validez de la referencia de una variable referenciada.
ASSERT_INITIAL: chequea si la referencia de una variable referenciada es válida
ASSERT_NOT_INITIAL: chequea si un objeto de datos no tiene valor inicial.
ASSERT_SUBRC: chequea el valor del SY-SUBRC.
EJECUTAR LOS TEST
Para ejecutar los test ejecutamos las siguientes opciones del menú:
Para los programas: PROGRAM -> TEST -> UNIT TEST
Para las clases: CLASS -> UNIT TEST
Para los Módulos de función: FUNCTION MODULE -> TEST -> UNIT TEST
Ejemplo:
*&---------------------------------------------------------------------*
*& Report ZTEST_ABAP_UNIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztest_abap_unit.
DATA: valor TYPE i.
PERFORM asignar_valor CHANGING valor.
WRITE valor.
*&---------------------------------------------------------------------*
*& Form asignar_valor
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM asignar_valor CHANGING p_valor.
p_valor = 10.
ENDFORM.
*----------------------------------------------------------------------*
* CLASS test DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS test DEFINITION FOR TESTING. "#AU Risk_Level Harmless
"#AU Duration Short
PRIVATE SECTION.
METHODS test_asignar_valor FOR TESTING.
ENDCLASS. "test DEFINITION
*----------------------------------------------------------------------*
* CLASS test IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS test IMPLEMENTATION.
METHOD test_asignar_valor.
DATA: valor_test TYPE i.
PERFORM asignar_valor CHANGING valor_test.
cl_aunit_assert=>assert_equals( act = valor_test
exp = 20
msg = 'Error: el valor difiere del correcto').
ENDMETHOD.
ENDCLASS. "test IMPLEMENTATION
Podemos utilizar ABAP UNIT para probar:
· Un programa ejecutable
· Un module pool
· Un grupo de funciones
· Un Módulo de funciones
· Un class pool
El programa a probar puede contener muchas clase de prueba y una clase de prueba puede tener muchos métodos de prueba.
Todas las pruebas unitarias pertenecientes a un programa se organizan dentro de lo que se conoce como TAREA DE PRUEBA.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para el Máster ABAP POO.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial