首页 > 解决方案 > 如何在 TEST-INJECTION 之外获取变量?

问题描述

我想访问 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

标签: abap

解决方案


SAP文档中关于该主题的引文表明......

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

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

所以不幸的是,无法访问与TEST-INJECTION. 您只能访问在相同范围内也可见的变量TEST-SEAM


推荐阅读