Test Double Framework-如何绕过Tested方法中调用的函数

2020-08-13 17:32发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我一直在使用test...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我一直在使用test_double框架来测试和分析类中的方法。 通常,由于我们的大多数方法仅包含select和loop语句,因此我将方法加倍并将模拟数据插入到环境中。 但是我们的方法之一是调用某些函数(例如" EQUIPMENT_READ")和某些其他函数来填充某些结构。 因此,仅对方法中的表进行模拟和填充不足以传递这些函数,这些函数希望填充真正的深表以提供某些结果。 我的问题是如何在不使用模拟数据填充表的情况下绕过这些功能,或者如果需要模拟数据填充,如何以最可能的方式处理呢? 原始方法调用以下函数:

调用函数" EQUIPMENT_READ"
           出口
             equi_no = ls_result-eq_number
           输入
             equi = ls_equi
             eqkt = ls_eqkt
           例外情况
             auth_no_begrp = 1
             auth_no_iwerk = 2
             auth_no_swerk = 3
             eqkt_not_found = 4
             equi_not_found = 5
             equz_not_found = 6
             iloa_not_found = 7
             auth_no_ingrp = 8
             auth_no_kostl = 9
             err_handle = 10
             lock_failure = 11 ## NUMBER_OK
             auth_no_badi = 12
             其他= 13。
 

在测试方法中,尽管我填写了以下方法,但填充ls_equi和ls_eqkt却无济于事,因为在更深的一层中,它仍在搜索某些缓冲表。 测试方法:

测试方法:

 class-data:环境类型ref if_osql_test_environment。
        
 rt_equi =值#((equnr ='TU_NUM_1'eqart ='IDMRDTL')
                        (equnr ='TU_NUM_2'eqart ='IDMRDSU'))。


     环境->插入测试数据(i_data = rt_equi)。


     rt_eqkt =值#((equnr ='TU_NUM_1'spras ='E'eqktu ='EQUIPMENT_TXT_1')
                         (equnr ='TU_NUM_2'spras ='E'eqktu ='EQUIPMENT_TXT_2'))。


     环境->插入测试数据(i_data = rt_eqkt)。


     rt_equz =值#((equnr ='TU_NUM_1'datbi ='01012020'eqlfn ='001')
                         (equnr ='TU_NUM_2'datbi ='01012020'eqlfn ='001'))。


     环境->插入测试数据(i_data = rt_equz)。