我最初尝试过
DATA: cl_rest_bo_list TYPE REF TO zcl_rm_rest_bulk_orders.
CREATE OBJECT cl_rest_bo_list.
cl_rest_bo_list->request->if_http_request~set_method( 'GET' ).
cl_rest_bo_list->do_request( ).
这导致异常结束,访问request
未初始化。
然后我尝试实例化请求和响应
DATA: cl_rest_bo_list TYPE REF TO zcl_rm_rest_bulk_orders.
DATA: cl_request TYPE REF TO cl_http_request.
DATA: cl_response TYPE REF TO cl_http_response.
CREATE OBJECT cl_rest_bo_list.
CREATE OBJECT cl_request.
CREATE OBJECT cl_response.
request->if_http_request~set_method( 'GET' ).
cl_rest_bo_list->request = cl_request.
cl_rest_bo_list->response = cl_response.
cl_rest_bo_list->do_request( ).
这至少不会异常结束,但是 set_method 在这里返回错误代码并且实际上并没有设置方法。
system-call ict
did
ihttp_scid_set_request_method
parameters
m_c_msg " > c handle
method " > method
m_last_error. " < return code
由于谷歌不知道 ihttp_scid_set_request_method,我很确定我做错了。也许没有实例化 BSP 控制器的规定,尽管我不确定这对 ABAP 单元测试 BSP 控制器意味着什么。
作为目前的解决方案,我已将所有业务逻辑提升到一个单独的方法中,该方法可以毫无问题地调用/测试。不过,如果有人知道如何实例化 CL_BSP_CONTROLLER2 类,那就太好了。