CDS View Unit Test for multiple views
Below we have 2 CDS views.
Data preview.
Data preview.
Create a class and its local test class.
While creating the doubles environment, the method CREATE_FOR_MULTIPLE_CDS can be used and all the CDS view names can be passed.
“ use this source file for your ABAP unit test classes
CLASS lcl_demo_flight_test DEFINITION FINAL FOR TESTING DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
CLASS-DATA: lo_enviro TYPE REF TO if_cds_test_environment.
CLASS-METHODS: class_setup.
CLASS-METHODS: class_teardown.
METHODS: setup.
METHODS: teardown.
* TEST METHODS
METHODS: test_flight1_data FOR TESTING.
METHODS: test_flight2_data FOR TESTING.
ENDCLASS.
CLASS lcl_demo_flight_test IMPLEMENTATION.
METHOD class_setup.
lo_enviro = cl_cds_test_environment=>create_for_multiple_cds(
i_for_entities = VALUE #(
( i_for_entity = ‘ZDEMO_SCARR’ ) ” cds view name
( i_for_entity = ‘ZDEMO_SPFLI’ ) ” cds view name
) ).
ENDMETHOD.
METHOD class_teardown.
lo_enviro->destroy( ).
ENDMETHOD.
METHOD setup.
* insert test data ifor scarr and spfli – dependent components
DATA: lt_scarr TYPE TABLE OF scarr.
DATA: lt_spfli TYPE TABLE OF spfli.
lt_scarr = VALUE #(
( mandt = sy-mandt carrid = ‘A1’ carrname = ‘American Airline’ currcode = ‘USD’ url = ” )
( mandt = sy-mandt carrid = ‘B1’ carrname = ‘British Airline’ currcode = ‘EUR’ url = ” )
).
lt_spfli = VALUE #(
( mandt = sy-mandt carrid = ‘A1’ connid = ‘0001’ countryfr = ‘US’ countryto = ‘IN’ cityfrom = ” cityto = ” airpfrom = ” airpto = ” )
( mandt = sy-mandt carrid = ‘B1’ connid = ‘0001’ countryfr = ‘UK’ countryto = ‘IN’ cityfrom = ” cityto = ” airpfrom = ” airpto = ” )
).
* insert the test data
lo_enviro->insert_test_data( EXPORTING i_data = lt_scarr ).
lo_enviro->insert_test_data( EXPORTING i_data = lt_spfli ).
ENDMETHOD.
METHOD teardown.
lo_enviro->clear_doubles( ).
ENDMETHOD.
METHOD test_flight1_data.
DATA: lt_exp_res TYPE TABLE OF zdemo_scarr.
lt_exp_res = VALUE #(
( carrid = ‘A1’ carrname = ‘American Airline’ currcode = ‘USD’ url = ” )
( carrid = ‘B1’ carrname = ‘British Airline’ currcode = ‘EUR’ url = ” )
).
” select on cds view
SELECT * FROM zdemo_scarr INTO TABLE @DATA(lt_act_res).
cl_abap_unit_assert=>assert_equals(
EXPORTING
act = lines( lt_act_res )
exp = lines( lt_exp_res )
msg = |No. of lines must be 2| ).
ENDMETHOD.
METHOD test_flight2_data.
DATA: lt_exp_res TYPE TABLE OF zdemo_spfli.
lt_exp_res = VALUE #(
( carrid = ‘A1’ connid = ‘0001’ countryfr = ‘US’ countryto = ‘IN’ )
( carrid = ‘B1’ connid = ‘0001’ countryfr = ‘UK’ countryto = ‘IN’ )
).
” select on cds view
SELECT * FROM zdemo_spfli INTO TABLE @DATA(lt_act_res).
cl_abap_unit_assert=>assert_equals(
EXPORTING
act = lines( lt_act_res )
exp = lines( lt_exp_res )
msg = |No. of lines must be 2| ).
ENDMETHOD.
ENDCLASS.