Как создать экземпляр контроллера BSP вручную
Я пробовал изначально
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, это было бы здорово.
1 ответ
Насколько я знаю, контроллер BSP может быть создан только изнутри обработки ICF, поскольку он получает информацию о вызове из ядра. Я не уверен, почему вы хотите установить модульные тесты для пользовательского интерфейса, если только вы не разделили пользовательский интерфейс и бизнес-логику, как следует из вашего комментария об "отмене"....