Abap 如何在测试注入之外获取变量?

Abap 如何在测试注入之外获取变量?,abap,Abap,我希望能够访问测试注入范围之外的变量。为了澄清,我的意思是,考虑下面的例子: 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-TES

我希望能够访问测试注入范围之外的变量。为了澄清,我的意思是,考虑下面的例子:

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
中获取外部变量?

引用SAP中关于该主题的内容:

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

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


因此,不幸的是,无法访问与
TEST-INJECTION
在同一范围内的变量。您只能访问在与
TEST-SEAM

相同范围内可见的变量,因为有些地方出了问题。您已经有权访问
TEST-INJECTION外部的变量。。。结束测试注入
在此语句中
移动相应的mo\U dc\U清洁器->mt\U doc\U导入到lt\U doc\U导入。
。无论如何,谢谢,我不知道这样的事情甚至存在。乍一看,令人遗憾的是,
TEST-SEAM将生产代码弄得乱七八糟。。。END-TEST-SEAM
。如果允许将作用域引入
TEST-INJECTION
,那就太好了。我无法分配在
TEST-INJECTION外部定义的变量。。。测试注入结束
中的测试注入。。。结束测试注入self。不幸的是,这是不可能的。请参阅我的答案。“测试接缝”仅在您必须处理“遗留”程序时才用作最后手段。注入备用数据或代码的经典方法是使用。我担心这项功能可能会被滥用。看来我还有很多东西要赶。多年来,我一直在等待像
CL\u ABAP\u TESTDOUBLE
这样的课程。我不知道SAP最终创造了这样的东西。谢谢Florian的推荐!