触发ALV handle_data_change事件以进行单元测试

2020-09-14 00:54发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我尝试使用单元测...

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

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


专家们,

我尝试使用单元测试来测试我的ALV OO。
所以基本上我会尝试以下操作:

设置ALV
在ALV中加载数据
更改ALV中的数据(例如,仅一个单元格)
触发handle_data_changed
检查是否一切正常

到目前为止,我已经尝试过类似的操作:
https://blogs.sap.com/2013/08/13/trigger-alv-datachange-event-manual/

我知道应该在前端中对其进行更改,但是我想仅通过代码就可以做到这一点。

我用于单元测试方法的代码是:

 f_cut-> setup_alv()。
     f_cut-> tickets-> lt_ticketlist = me-> create_ticketlist()。
     f_cut->门票-> go_alv_grid-> refresh_table_display()。
     读取表f_cut-> tickets-> lt_ticketlist使用键object_id ='4000010502'分配 -pos = 2。
     数据:it_pos类型为lvc_t_pos。
     数据:is_pos类型LVC_S_POS。
     is_pos-fieldname ='POS'.is_pos-row_id = 6。
     APPEND is_pos至it_pos。
     f_cut->门票-> go_alv_grid-> change_data_from_inside(it_cells = it_pos)。
     f_cut->门票-> go_alv_grid-> if_cached_prop〜set_prop(
     出口
       PROPNAME ='GridModified'
       PROPVALUE ='1')。
     f_cut->门票-> go_alv_grid-> check_changed_data()。
 


1条回答
compass1988
2020-09-14 01:19 .采纳回答

我自己搞定。
这很安静

 ls_delta_cells-row_id = sy-tabix。
     ls_delta_cells-fieldname = lv_fieldname。
     ls_delta_cells-value = lv_value。
     将ls_delta_cells附加到lt_delta_cells。


     go_alv_grid-> set_delta_cells(
       出口
    it_delta_cells = lt_delta_cells
     i_modified = abap_true
     )。
     go_alv_grid-> check_changed_data(IMPORTING e_valid = lv_valid)。
 

这会触发data_changed

一周热门 更多>