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的推荐!