SQL开发人员单元测试bug?

时间:2012-02-21 08:50:53

标签: unit-testing plsql oracle-sqldeveloper

我决定开始在PL / SQL中使用单元测试,因为它可能很有趣并且可以提高代码的质量。

所以,我已经阅读了几个可用的资源,并选择了SQL Developer及其单元测试功能。

我遇到了一个愚蠢的问题,谷歌让我失望。

我正在测试一个简单的包。

--Package spec
CREATE OR REPLACE
PACKAGE SAMPLE_TEST
AS

TYPE SAMPLE_RECORD
IS
  RECORD
  (
    SAMPLE_NUMBER NUMBER(3),
    SAMPLE_DATE DATE,
    SAMPLE_INTEGER INTEGER );

PROCEDURE DO_SOMETHING(
    P_FILE VARCHAR2,
    P_RESULT OUT SAMPLE_RECORD);
--OR FUNCTION (..) RETURN SAMPLE_RECORD...    

END SAMPLE_TEST;

实施:

--Package body
CREATE OR REPLACE
PACKAGE BODY SAMPLE_TEST
AS
PROCEDURE SAMPLE_PROC(
    P_FILE VARCHAR2,
    P_RESULT OUT SAMPLE_RECORD)
AS
BEGIN
  P_RESULT.SAMPLE_NUMBER    := SUBSTR(P_FILE, 0 ,3);
  P_RESULT.SAMPLE_DATE      := TO_DATE(SUBSTR(P_FILE, 4 ,8), 'DD.MM.RRRR');
  P_RESULT.SAMPLE_INTEGER   := SUBSTR(P_FILE, 20);
END SAMPLE_PROC;
END SAMPLE_TEST;

输入字符串为 035200220122102201213

结果是 - 一个错误。断言失败。 程序是正确的,它返回正确的值,但“单元测试框架”通知我:

P_RESULT : Expected: [<SAMPLE_NUMBER=35, SAMPLE_DATE=20.02.12, SAMPLE_INTEGER=13>], 
           Received: [<SAMPLE_NUMBER=35, SAMPLE_DATE=20.02.12, SAMPLE_INTEGER=13>]

我无法在任何地方找到一个提交的bug - metalink,Google - 任何想法?

1 个答案:

答案 0 :(得分:0)

此页面https://forums.oracle.com/forums/thread.jspa?threadID=2382730 说参考游标和单元测试存在问题......

也许是相关的。