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

专属服务器_守望先锋服务器_优惠

小七 141 0

专属服务器_守望先锋服务器_优惠

在nigeljamesjelena和Michelle的博客文章"ABAP–特殊雪花"下的讨论中,他们要求我提供一篇关于ABAP单元测试的真实示例的博客文章。正如你可能知道的,你不能(不应该)拒绝来自Jelena Perfiljeva和Michelle Crapo的愿望,所以我们来:

背景:公共服务/公共事业任务:编写一个网关服务来获取不同网络提供商的电表读数价格(直接通过网络ID或客户地址)(我在这里只展示数据检索类的一部分,而不是整个GW服务)

在我的例子中,我使用的是一种简单的单元测试类型,"构造函数注入",这就是为什么我们需要三个类:

数据检索类,它也包含测试类用于数据库选择和外部依赖(如函数模块调用)的数据库类数据模拟类/test double

在您的数据检索类中,您可以像平常一样开始编码,例如

在"get\u priceid"方法中,您可以正常放置select语句。在我们的例子中,我们在database类中调用一个方法:

每个数据库访问、函数模块或外部方法调用都是这样封装的。

database类中的方法是这样的(如您所见,您首先要创建一个接口,物联网公司排名,我们将在稍后的测试双类中使用它):

如果您在数据检索类的构造函数中实例化数据库类,那么您的代码应该已经可以工作了。

因为在我们的单元测试中,我们只想测试我们的代码,而不想测试选择或函数模块等外部依赖项,我们可以在所谓的"双重测试"类中模拟论文:在testdouble中,云的服务器,大数据网站,我们实现了与在数据库类中使用的相同的接口。因此我们必须实现相同的方法,但是使用模拟数据:

返回数据检索类。现在我们有两个可选的类可以返回数据,企业正版软件,一个直接来自数据库/功能模块,另一个带有模拟数据。我们想用哪一个?我们怎么做?这里我们可以使用所谓的"构造函数注入",在这里我们可以切换类。在常规过程中(例如由网关服务调用),我们只需实例化数据库类。如果我们被单元测试调用,我们使用test double类的实例,我们将在test类的setup方法中实例化该实例(见下文)。

数据检索类的构造函数如下:

在test类的setup方法中,我们实例化test double类并将该实例传递给数据检索类的构造函数:

现在我们可以在我们的测试类中创建我们的测试方法,发发淘客助手,例如

@Jelena和Michelle:我希望这对如何在现实世界中使用单元测试有一点帮助。

附言:下面是我的"幸福岛"的一个例子: