最初に試しました
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
Googleはihttp_scid_set_request_methodについて知らないので、私はこれを間違っていると確信しています。BSPコントローラをインスタンス化するためのプロビジョニングがない可能性がありますが、これがABAPユニットテストのBSPコントローラにとって何を意味するのかはわかりません。
今のところ解決策として、私はすべてのビジネスロジックを、問題なく呼び出され/テストされる別のメソッドに持ち上げました。それでも、CL_BSP_CONTROLLER2クラスをインスタンス化する方法を誰かが知っているなら、それは素晴らしいことです。