不一致的测试仪器意味着什么?

时间:2012-10-06 19:14:45

标签: bapi

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

我想也许是因为我在我试图测试的实际类方法中调用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. 

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

查看documentation

  

在具有发布的系统中< 7.00增强包2您指定测试   使用伪注释的本地测试类的属性。添加伪   CLASS ... FOR TESTING声明后的评论。伪   注释具有以下语法:

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

您可以为每个程序指定一个伪注释   行。要为测试类指定两个测试属性,必须进行传播   CLASS语句至少有两行。 该领域是   区分大小写的。

修复案例问题应该摆脱仪器问题。功能模块对此没有任何影响。

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