云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

域名备案_阿里云扩容磁盘_返现

小七 141 0

域名备案_阿里云扩容磁盘_返现

只有一些关于CL\u ABAP\u TESTDOUBLE的帖子。我不觉得它使用起来很琐碎,什么是物联网,有时甚至很棘手。即使是谷歌也只返回14个"CL\u ABAP\u TESTDOUBLE"结果。我能找到的最有趣的信息是prajulmeyana的ABAP测试双框架——一个介绍,包括一个很好的演示视频。这篇文章是一个很好的起点,但它会从更多的例子中受益。

因此,我决定创建简单的例子,用于模拟方法,包括导入、导出、更改和返回参数、基于类的异常和事件,以及方法时间。

这些例子是作为一个独立的演示程序提供的,包含一个ABAP单元类(当然,所有测试都是通过的),在这个类中,您可以检查如何编写测试双重调用配置,以防您对自己的测试双重调用有疑问或问题。我希望这些方法有足够的自我记录。我在ABAP7.52系统中测试了这个程序。

请注意,我不谈论"答案"、"匹配器"和"期望",它们允许在运行时进行动态决策。在Prajul Meyana的博客文章中解释了它们。

在展示代码之前,我试图总结一些我不清楚的关键概念。

但是,在继续之前,请先阅读Prajul Meyana的博客文章,首先了解Test Double框架是什么很重要。

我希望这篇文章会有用。

享受ABAP Test Double框架的乐趣吧!

===>最新消息,2019年3月16日:嘿,使用ATD框架的真正意义是什么,如果您可以简单地创建自己的本地类来实现接口并编写您想要的规则…(这里讨论:https://blogs.sap.com/2015/01/05/abap-test-double-framework-an-introduction/#评论-452240). 顺便说一下,我把代码移到Github上了。

只能模拟接口,不能模拟类,只能模拟全局接口,不能模拟本地接口。只能输出"基于类"类型的异常(不能模拟那些原始的旧异常)。每个测试类最多可以测试36个接口,因为CL\u ABAP\u TESTDOUBLE的CREATE方法在运行时使用GENERATE SUBROUTINE POOL语句生成一个类(最多生成36个子例程池)。在测试方法"最大\u测试\u双倍"中演示无法模拟静态方法和事件。从7.40 SP 9提供。看来还没有下港的计划。无法模拟声明为导出而不是更改的参数参见下面的章节"参数声明为导出而不是更改"在测试方法"EXPORTING\u BAD"中演示了

从Prajul Meyana的帖子中我没有清楚地理解的是,方法CONFIGURE\u调用定义输出值和下一个方法调用test double定义方法名称和输入值的强制性顺序和存在性,简短地说。

所以,云服务器好,任何调用配置都必须始终(此规则没有例外,从不!)由这两个连续的调用组成,顺序如下:

第一个调用:定义输出值或引发异常,忽略一些输入参数(如任何输入值),另外引发事件等:CL\u ABAP\u TESTDOUBLE=>配置\u调用(TEST\u DOUBLE)->…这里是链接方法…使用本文中几乎所有可能的示例:

第二次调用:选择方法及其输入值(包括更改参数的输入值):测试方法(输入和改变参数)输入值仅由框架测试是否相等,所有其他测试操作符都将使用"matchers"手动编码(本文中没有详细说明)。还有另一种可能性,那就是为一个或多个参数定义"任意值"。必须通过以下方式完成:首先,在上面的CONFIGURE\u调用中使用IGNORE\u PARAMETER和IGNORE\u ALL\u PARAMETERS方法。其次,在第二个调用中为所有这些"忽略的"参数输入伪值。不能为那些可选参数输入这些伪值。不要指示导入类别中的参数,否则在运行时会出现异常。这些参数值必须在第一次调用时通过SET\u parameter方法传递。

如果您想模拟输入和输出值的更多组合,例如定义一个决策表,或模拟几个方法,您可以在同一个测试双精度表上定义多个调用配置,您想定义多少次就定义多少次。

所以,同样不要忘记,一个调用配置通常由两个调用组成:一个是配置调用,然后是对要配置的方法的调用。

这些方法属于所谓的"fluent接口",即每个实例方法都返回自己的实例,这样可以方便地链接这些方法(参见上面的配置调用示例)。

设置参数:它设置要由配置的方法返回的一个参数的值;它仅对导出和更改参数有效。对于返回的参数,必须使用returning方法。当然,在调用配置中不能将SET\u参数与RAISE\u异常混用。下面是测试方法的cf代码EXPORTING\u GOOD和EXPORTING\u BAD。返回:它设置返回参数的值。当然,在调用配置中不能将返回与RAISE\u异常混用。测试方法的cf代码如下。引发异常:它会触发基于类的异常。在调用配置中不能将其与SET\u参数和返回混用,当然只能使用一个RAISE\u异常。下面是测试方法的cf代码RAISE\u EXCEPTION\u BAD和RAISE\u EXCEPTION\u GOOD。引发事件:当调用配置的方法时,它会触发一个事件(最终带有参数);如果需要,可以引发多个事件。测试方法的cf代码如下所示。忽略\u参数:此方法用于实现给定参数的通配符"无论参数值是什么"。您可以多次调用它,每个要"忽略"的参数调用一次。它可以用于改变参数。cf代码的测试方法忽略参数坏和忽略参数好如下。忽略所有参数与忽略参数相同,但它忽略所有导入和更改的参数。测试方法的cf代码忽略下面的所有参数。次数:如果未指定,则默认值为次(1),即此调用配置应用一次。重要提示:如果所配置的方法被调用的次数超过所指示的次数,则框架将为该方法应用上次创建的调用配置。这在下面的导出两次良好和返回两次良好的测试方法中得到了证明。理解这一点非常重要,尤其是在定义泛型输入值时,因为这种调用配置可能会被多次使用,物联网操作系统,因此应该使用具有足够高值的方法多次。这在下面的测试方法决策表坏*和决策表好中得到了证明。对于简单的用法,请参阅下面的测试方法代码TIMES\u BAD和TIMES\u GOOD.

以下方法在本博客文章中没有解释,更多信息请参阅Prajul Meyana的博客文章: