云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

服务器_promo数据库_试用

小七 141 0

服务器_promo数据库_试用

单元测试、ABAPUnit和测试驱动开发(TDD)是SAP社区最近的热门话题。

在几个月前参加了OpenSap课程"用ABAP编写可测试代码"的部分内容之后,我最近有机会尝试了一些方法。

我的情况:我有一个经典的ABAP报告:根据选择屏幕选择一些东西,做一些计算或转换(在我的例子中:总结一些东西,使用collect),最后对结果做一些事情(在我的例子中:创建一个IDOC)。我想我是用我的模板为这些案例创建的。我可能很难回答这样一个问题:"我到底应该在这里进行什么以及如何进行单元测试?!"不管怎样,

我不得不再看一次报告,当我得到以下额外的要求:

->这是什么,触发"这里是单元测试用例!"立即。

TDD范例"你要做的第一件事:写一个测试"不起作用,因为我至少需要一个空的结构(例如一个类)来测试。[直到现在,当我写下来的时候,我才意识到,我可以从编写测试开始,然后通过向前导航来创建我在其中使用的所有东西(类、方法)。我认为这在课程中也是被建议的。]

我做的第一件事(在将参数pa\u bukrs添加到选择屏幕之后)是编写一个类lcl\u input\u验证,使用一个空方法verify\u werks\u对抗\u bukrs。(现有的编码在lcl\ U报告中–我的想法是我可能根本不必去碰它!)

然后我去写测试。我注意到的第一件事是:没有测试类选项卡,就像在课程中一样——这是因为我没有全局类("SE24"),物联网系统,而是本地类(在我的ABAP报告中)。

但是在其他类下面写测试类是可以的,而且可以很好地工作。我仍然可以访问课程中的示例,以查找类似

的内容,这真的很有帮助。我用第一个测试方法创建了测试类ltc\u report\u名称:one\u werks\u belowns\u to \u bukrs.

正如我们在课程中所做的那样,我想从非常详细的写作开始,使用给定的/when/then结构(being lazy,我创建了一个AdT模板:—)

我填写如下:

如你所见,我没有使用"SQL测试双框架"或类似的方法,我只是查看了开发系统中的V\u T001K\u ASSIGN,北京大数据公司有哪些,以得到一个有效的组合。

我知道:–此测试可能会破坏其他系统–当定制更改时,这打破了我的测试。

然而,这是一个反复出现的提示:这是一个解决方案,我可以在这个时候,它帮助我完成这一个单元测试(而不是迷失在试图学习另一个新事物™).而且:这并不能阻止我在将来改变(改进、重构)它。

所以我做了我的测试,运行它,看着它失败。

就在课本上,我做的下一件事是:让它通过,用最简单的方法:

下一件事就是其中之一:

写下下一个测试重构产品代码重构测试代码)。

我选择反射测试代码:

–将"给定"部分(创建对象并将其引用分配给CodeUnderTest变量(cut))移动到setup方法,在这个过程中创建成员m\u cut。–以更"紧凑"的形式带来了测试的其余部分:

–我还将测试类重命名为ltc\U input\U verify,因为我注意到(仅)这里测试的是:input verify类。

运行我的测试仍然通过它,所以重构很有可能没有破坏它。

我现在可以继续编写下一个测试,可能是这个:

值得一提的是,现在测试的"编写"非常简单(你会知道我在这里使用AdT,对吧?):1突出显示第一个测试(使用mose或键盘)。2ctrl+alt+down。三。更改"iv\u bukrs="后面的值。4…哦和strg+1+单击以创建"测试定义"和快速修复。5完成。

结论:

好吧,我承认:我只是在这里抄了课本!实际结论是:我尝试了一些新的东西。像往常一样,这花了我很多时间,我也经历了新的事情。我现在知道的比以前多了。

下次我给某个东西添加UnitTest时,我很可能会更快。我知道有一个真正的引用(在我的开发系统中,而不是OpenSap沙盒),我(也许还有其他人)可以引用它。而我仍然不能回答"是"到"你的所有代码都100%覆盖了UnitTest吗?",我可以回答"你做过(或曾经做过)真实的单元测试吗?"现在!

学到的东西(有些是‘无脑者’——但我还是时不时地重新发现它们):–一次"学会"的东西(OpenSap)很快就会从脑海中消失,云服务器吧,尤其是在没有使用的情况下。–计划外的事情也需要一些时间(例如Eclipse、ADT更新…)–这是一个好主意,遵循tdd循环的字母(r\u my\u result=abap\u true->使第一个测试通过)。在任何给定的时间,只有一个问题/任务需要解决是有帮助的。更多可能是压倒性的!)–ABAP单元与本地类一起工作,大数据 数据分析,只是不太好。(您应该使用includes构造代码(无论如何都应该这样做),云服务器哪个好,为测试类创建至少一个includes)。–以一种尚未达到最佳状态的方式解决问题总比不解决好;这是迈向最佳状态的第一步。

行动要求:去吧,学习和尝试新事物!(从小处做起没关系!)。如果你愿意,一定要谈!

一如既往,非常感谢您的意见!