1

我正在写一些 Abap 单元测试。这是一个简单的日期比较测试。但是我收到有关不一致的测试仪器的错误。

我想可能是因为我在尝试测试的实际类方法中调用了 SAP 函数模块 DATE_TO_DAY。但是,当我注释掉所有代码并只留下空的测试方法时,我仍然得到错误。

我得到两个错误:1)不一致的测试仪器(测试类 LCL_COBRA_ELIG_TEST)2)没有执行,因为实际风险太高。

这是我的测试课:

    CLASS lcl_cobra_elig_test DEFINITION FINAL FOR TESTING
                               "#AU risk_level harmless
                               "#AU duration short
                              .
    PRIVATE SECTION.
      CONSTANTS: from_date_invalid(20) TYPE c VALUE 'From-Date incorrect.',
                 to_date_invalid(20) TYPE c VALUE 'To-Date incorrect.'.

    DATA: subject TYPE REF TO lcl_report_range,
          date TYPE datum.

    METHODS:
      setup,
      test_from_date_when_mon FOR TESTING,
      teardown.
    Endclass.

    CLASS lcl_cobra_elig_test IMPLEMENTATION.
      METHOD  setup.
      ENDMETHOD.                    "teardown
      METHOD  teardown.
        CLEAR subject.
      ENDMETHOD.                    "teardown
      METHOD test_from_date_when_mon.
*       CREATE OBJECT subject
*         EXPORTING
*           im_date = '20121001'.
*       date = subject->get_from_date( ).
*       CALL METHOD cl_aunit_assert=>assert_equals
*         EXPORTING
*           act = date
*           exp = '20120929'
*           msg = from_date_invalid.
     ENDMETHOD.                    "test_from_date_when_mon

   ENDCLASS. 
4

2 回答 2

0

我猜测了一下,认为属性“Risk_Level”和“Duration”可能区分大小写,因为它们在技术上是注释。这解决了我的问题——将案例修复为#AU Risk_Level Harmless 和#AU Duration Short。

于 2012-10-07T03:26:06.617 回答
0

看看文档

在版本 < 7.00 增强包 2 的系统中,您可以使用伪注释指定本地测试类的测试属性。CLASS ... FOR TESTING在语句之后添加伪注释。伪注释具有以下语法:

SYNTAX CLASS ... FOR TESTING "#AU
Risk_Level Critical|Dangerous|Harmless "#AU Duration  
Short|Medium|Long 

您可以为每个程序行指定一个伪注释。要为一个测试类指定两个测试属性,您必须将 CLASS 语句分散到至少两行。该字段区分大小写。

修复案例问题应该可以解决仪器问题。功能模块对此没有任何影响。

至于风险级别问题,也可以通过案例问题解决。(文档没有说明默认风险级别是什么。)如果不是,请重新阅读风险级别的定义,设置正确的风险级别,然后使用SAUNIT_CLIENT_SETUP允许执行测试。

于 2012-10-07T08:26:02.473 回答