如何在TEST-INJECTION之外获取外部变量?

时间:2019-05-08 15:06:13

标签: abap

我想访问TEST-INJECTION范围之外的变量。为了弄清楚我的意思,请考虑以下示例:

DATA lt_doc_import TYPE zcl_za_doc_cleaner=>tt_doc_protocol.
MOVE-CORRESPONDING mo_dc_cleaner->mt_doc_import TO lt_doc_import.

TEST-INJECTION query_doc_protocol.
  rt_doc_protocol = lt_doc_import.
END-TEST-INJECTION.

DATA(lt_protocol) = mo_dc_cleaner->query_doc_protocol( ).

mo_dc_cleaner->filter_delete_protocol(
  EXPORTING
    it_doc_import = mo_dc_cleaner->mt_doc_import
    it_doc_protocol = lt_protocol
  IMPORTING
    et_doc_import = mo_dc_cleaner->mt_doc_import
    et_msg = DATA(lt_msg)
).

DESCRIBE TABLE lt_msg LINES DATA(lv_msg).
DESCRIBE TABLE mo_dc_cleaner->mt_doc_import LINES DATA(lv_doc_import).

编译器在抱怨变量lt_doc_import是未知的。如何从TEST-INJECTION中获取变量?

1 个答案:

答案 0 :(得分:2)

SAP documentation对此主题的报价是...

  

注入无法访问在指定测试接缝位置不可见的类型和对象。

     

这尤其适用于注入中定义的测试类和测试方法的类型和对象。这些类型和对象位于语句TEST-INJECTION的位置,但在注入中不可见。

很遗憾,无法访问与TEST-INJECTION相同作用域的变量。您只能访问在TEST-SEAM相同范围内也可见的变量。