-对测试驱动开发中的消息处理的怀疑

2020-08-20 05:03发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我试图在一个非常简单的s...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我试图在一个非常简单的se38程序中添加TDD,但遇到了一个问题,我尝试在论坛上进行谷歌搜索,但未找到解决方案。 因此,如果有人已经遇到了这个问题,那么请分享经验如何解决这一问题将对您有很大的帮助。

问题语句:在我的旧程序(不是基于OOP)中,在子例程中有一条message语句,这导致ABAP单元测试运行失败。

尝试了几种方法,到目前为止似乎没有成果。 每次它都会引发CX_AUNIT_UNCAUGHT_MESSAGE异常。

可能缺少一些非常基本的东西!

这是消息语句引起的问题,可能是因为它试图与GUI连接,不确定。

我正在下面的"测试类/方法"下处理这段代码:

但是它仍然失败,我的期望是,它应该通过测试。 As此消息需要根据给定的测试数据进行提示,并且我不想将该消息作为来自process_data例程的导出参数传递。 我想尽量保持表格不变。

任何指向该特定问题的指针都将非常有帮助。

谢谢。 索姆

(118.1 kB)
11条回答
xfwsx85
2020-08-20 06:05 .采纳回答

你好

在单元测试中,被测代码中的普通MESSAGE语句在单元测试中被"禁止"。

单元测试运行时实际上在会话中运行,而没有可用的对话框。 就像您的代码片段一样,没有引发消息或未添加其他消息的消息取决于对话框(或在后台运行),因此在这里不起作用。

结果屏幕为此提示(微弱) 分析标签中的案例中包含错误的文字:" MESSAGE ...引发,但未处理!" (我确实知道这完全没有帮助)。 ABAP Unit坚称,您的MESSAGE语句已经添加了RAISING附加项,并且在到达单元测试运行时环境的主要代码之前没有人抓住它。

您需要更改代码以传播此消息,而不是直接传播此消息。 在此表单中显示:

  • 在7.50以下,您可以在引发此异常时包装在Exception类(LCX_OBJECT)中(用RAISE EXCEPTION类型的LCX_OBJECT ...替换MESSAGE语句,检查RAISE EXCEPTION语法;您可以将其作为参数传递或直接定义为内部的常量 异常类)。
  • 如果您已经在 7.50,您可以依靠RAESS EXCEPTION的MESSAGE语句
  • 将消息序列化为"消息协议"(FORM参数/内部表,使用类似BAPIRET2的类型)以 显示在(主要)外部代码上。 Standard在许多功能模块和所有应返回成功/错误消息以显示的BAPI中执行此操作。

然后在调用此表单的地方调整代码以处理异常/表单协议 显示它。

最诚挚的问候

一周热门 更多>