一个SAP cds view test double的例子

  • 2020 年 1 月 13 日
  • 筆記

*"* use this source file for your ABAP unit test classes  CLASS lcl_test_productshorttex  DEFINITION FINAL FOR TESTING  DURATION SHORT  RISK LEVEL HARMLESS .    PRIVATE SECTION.      CLASS-DATA:        environment TYPE REF TO if_cds_test_environment.      CLASS-METHODS:        class_setup          RAISING            cx_static_check,        class_teardown.      DATA:        test_data   TYPE REF TO if_cds_test_data,        act_results TYPE STANDARD TABLE OF p_crms4_productshorttext  WITH EMPTY KEY,        makt_data   TYPE STANDARD TABLE OF makt  WITH EMPTY KEY,        mara_data   TYPE STANDARD TABLE OF mara  WITH EMPTY KEY.        METHODS:        setup RAISING cx_static_check,          insert_test_data IMPORTING                           it_data     TYPE ANY TABLE                           iv_viewname TYPE string,        test_single_record      FOR TESTING RAISING cx_static_check.    ENDCLASS.      CLASS lcl_test_productshorttex  IMPLEMENTATION.    METHOD class_setup.      environment = cl_cds_test_environment=>create(   i_for_entity ='PRODUCTSHORTTEXT'  ).    ENDMETHOD.      METHOD setup.      environment->clear_doubles( ).    ENDMETHOD.      METHOD class_teardown.      environment->destroy( ).    ENDMETHOD.      METHOD insert_test_data.      CLEAR test_data.      test_data = cl_cds_test_data=>create( i_data = it_data ).      DATA(z_test_data_dbl) = environment->get_double( i_name = iv_viewname ).      z_test_data_dbl->insert( test_data ).    ENDMETHOD.      METHOD test_single_record.      DATA: ls_productshorttext TYPE productshorttext,            lt_productshorttext TYPE TABLE OF productshorttext.        makt_data = VALUE #(  (             mandt =  sy-mandt             matnr =  'JA-1010-NOT_EXIST'             spras =  'E'             maktx =  'JDK Version 1.6'             maktg =  'JDK VERSION 1.6'  )   ).      insert_test_data( it_data = makt_data iv_viewname = 'MAKT' ).        mara_data = VALUE #(  (                      mandt = sy-mandt                      matnr = 'JA-1010-NOT_EXIST'                      scm_matid_guid16 =  '6C0B84B759DF1ED6B0D80E896AE01049'                   ) ).      insert_test_data( it_data = mara_data iv_viewname = 'MARA' ).        lt_productshorttext = VALUE #(  (                                        productguid = '6C0B84B759DF1ED6B0D80E896AE01049'                                        language = 'E'                                        productname = 'JDK Version 1.6'                                        productnamelarge = 'JDK VERSION 1.6'                                     )  ).        SELECT * FROM productshorttext INTO TABLE @DATA(act_results).        cl_abap_unit_assert=>assert_equals( act = lines( act_results )                                           exp = 1 ).        READ TABLE act_results INDEX 1 INTO ls_productshorttext.      cl_abap_unit_assert=>assert_table_contains( line = ls_productshorttext                                          table =  lt_productshorttext ).    ENDMETHOD.    ENDCLASS.