如何正确使用全局测试类?

2020-09-02 14:09发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)在一个项目中,我们设计了一个类。...

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

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


在一个项目中,我们设计了一个类。 我们称之为Z_MYCLASS。 我们希望一个人来编写代码,一个人来编写本地单元测试类中的测试方法。 不幸的是,这一次无法起作用,因为第一个更改类的人将其锁定,因此第二个用户无法再更改它。

没问题,我想:这就是全局测试类的目的。 因此,我们创建了一个全局测试类,并将一个现有的单元测试复制到该类中。

但是当我运行单元测试时,我得到消息:

全局测试类[Z_MYCLASS_TEST]不是抽象的

好。 将这个测试类抽象化没有问题。 所以我做了。 但是之后,我收到以下消息:

已处理:0个程序,0个测试类,0个测试方法

我找到了以下文档:正确使用全局测试类

我的期望是使用F_CUT TYPE REF TO Z_MYCLASS创建具有某些单元测试方法的全局测试类。

如前所述,它不能很好地工作...:(

 class Z_MYCLASS_TEST定义
   上市
   抽象
   最后
   建立公众
   用于检测
   持续时间短
   风险水平无害。

   公共部分。
   受保护的部分。
   专用部分。
     数据f_cut类型参考z_myclass。
     方法设置。
     方法check_between_1_and_6进行测试。
 ENDCLASS。

 CLASS Z_MYCLASS_TEST实施。
   方法check_between_1_and_6。

     数据随机结果TYPE i。
     DATA is_between_1_and_6 TYPE abap_bool。
     做1000次。
       randomresult = f_cut-> generate_random()。
       is_between_1_and_6 = COND#(当1和6之间的随机结果
         然后abap_true
         否则abap_false)。
       cl_abap_unit_assert => assert_equals(
         出口
           行为= is_between_1_and_6
           exp = abap_true)。
     ENDDO。

   终结法。

   方法设置。
     f_cut = z_myclass => factory(seed = 1)。
   终结法。

 ENDCLASS。

但是我不知道如何设置测试类以对另一个类进行一些单元测试。

感谢您的帮助...

谢谢

Enno

10条回答
大简至美
2020-09-02 14:24

不能直接测试全局测试类,这就是为什么它必须被抽象的原因。 您必须使用继承全局测试类的本地测试类。

如果全局测试类(CHECK_BETWEEN_1_AND_6)中有一个测试方法,并且您想从本地测试类运行它,则必须 在PROTECTED或PUBLIC部分的全局类中声明它。 如果在专用部分中放置它,它将永远不会运行。 或仅在本地测试类中声明测试方法。

SETUP方法在全局测试类中没有意义(与其他夹具方法相同)。 仅执行本地测试类中的SETUP方法。 解决方法:创建一种从本地测试类的SETUP调用的"全局设置"方法。

一周热门 更多>