尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

SAP Gateway 单元测试里的 Integration Scenarios,从 Request Context 到 DPC 可测试性的完整解析

SAP Gateway 单元测试里的 Integration Scenarios,从 Request Context 到 DPC 可测试性的完整解析 在 SAP Gateway 开发里,经常会遇到这样一个很现实的问题。一个GET_ENTITYSET方法在/IWFND/GW_CLIENT里运行正常,通过浏览器或者 SAP Fiori 发起 OData 请求时也能拿到数据,可一旦准备给这个 DPC 方法补充ABAP Unit,问题立刻出现了。原因并不神秘。DPC 并不是一个脱离 SAP Gateway Runtime 独立运行的普通 ABAP 类。一个真实的 OData 请求进入 SAP Gateway 后,DPC 除了获得业务参数,还会得到大量由 Gateway Runtime 准备好的上下文信息。实体类型是什么,Entity Set 是什么,请求有没有$filter,有没有$top、$skip、$orderby,是不是通过 Navigation Property 进入目标实体,源实体的 Key 是什么,经过 Conversion Exit 转换之后的 Key 又是什么,这些信息并不是业务代码凭空产生的,而是由 Gateway Runtime 包装到 Request Context 里,再交给 DPC。SAP 为了解决 DPC 单元测试缺少 Runtime Context 的问题,提供了/IWBEP/CL_MGW_REQUEST_UNITTST和/IWBEP/IF_MGW_CONV_SRV_RUNTIME~INIT_DP_FOR_UNIT_TEST。借助这套机制,我们可以在ABAP Unit
返回列表