简介:
ABAP单元测试类,一种验证我们代码行为的简单方法。单元测试类不仅检查代码覆盖率,而且帮助开发人员覆盖代码的所有可能场景,从而生成更可靠的代码,减少返工的机会。
内容:
本博客将解释以下几点:
在SE80中生成单元测试类:
用于演示目的,我创建了一个类"ZCL\u UNIT\u TEST\u class\u DEMO1",它有一个方法"READ\u BOM\u VERSION"。有一个向导,折扣返利,我们可以通过它生成一个测试类,
下面是生成测试类的步骤:
图1
图2
图3
图4:点击创建按钮,提供测试类名,什么叫淘客,选择所有选项生成预定义的测试类方法。
图5:选择要生成测试类的方法。
图6:测试类生成完成。
测试类生成完成后,生成本地测试类(图7),这个我们可以根据自己的需求进行修改
图7
OSQL测试双框架:
这个框架对于业务逻辑测试非常有帮助,没有任何数据库依赖关系。该框架主要用于覆盖产品代码中的select查询,对数据库没有任何影响。通过这个,我们创建了一个选择查询的虚拟环境,服务器云,然后在其中模拟数据,大数据好就业吗,以检查代码的行为?
首先创建一个引用类型为"IF\OSQL\u TEST\u ENVIRONMENT"的静态属性。在预定义方法"CLASS\u SETUP"中为测试执行创建测试环境的实例,并声明其中用于主类方法的选定查询的所有表。有了这个,我们将在我们的方法中为select查询创建一个环境,并且我们将模拟那些数据来自select查询的表。
图8:DB工件重定向的测试环境
每个场景的单元测试用例方法:
现在,我们将更改单元测试用例(它是在生成测试类时生成的)根据我们的要求,每种方法
例如:在方法"READ\u BOM\u VERSION"中,有两种可能的场景,多线云主机,一种高亮显示为红色,另一种高亮显示为黄色。一次只执行一个场景,因此对于这种方法,需要两个单元测试用例。
图9
这里,我们模拟所有输入参数和select query的表。我们正在虚拟环境中插入测试数据。
图10:UTC中测试环境的使用
2。else条件下的单元测试用例:
图11
测试接缝和测试注入的使用:
在单元测试类中,我们不涉及任何"调用函数"和"调用方法"(其他类的)行。为了跳过这一部分,我们在产品代码中使用testseam End testseam。对于每个Test Seam End Test Seam,单元测试类中都会有一个对应的Test Injection End Test Injection.
通过使用Test Seam和Test Injection,我们避免了代码中其他类或函数模块的依赖性。
如果该调用函数预期会有一些输出,然后我们可以在相应的Test Injection End Test Injection中模拟它。
图12:在类方法中使用Test Seam–End Test Seam。
图13:在UTC中使用Test Injection–End Test Injection。
之前,我们使用Test Seam End Test Seam跳过单元测试类中的select查询(以避免数据库依赖性),从而影响代码覆盖率。通过OSQL环境,我们创建了一个虚拟数据库,不仅可以检查选择查询的行为,还可以帮助我们实现更好的代码覆盖率。
下面是单元测试类的完整代码: