SQL 开发人员单元测试错误?

Posted

技术标签:

【中文标题】SQL 开发人员单元测试错误?【英文标题】:SQL developer unit testing bug? 【发布时间】:2012-02-21 08:50:52 【问题描述】:

我决定开始在 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>]

我在任何地方都找不到提交的错误 - metalink、Google - 有什么想法吗?

【问题讨论】:

【参考方案1】:

本页https://forums.oracle.com/forums/thread.jspa?threadID=2382730 说引用游标和单元测试有问题...

也许是相关的。

【讨论】:

我认为该链接与我的示例没有任何相似之处。我没有引用游标,而且我肯定没有超过 2000 字节。但是,由于没有人回答这个问题,你的努力得到了一颗金星:)

以上是关于SQL 开发人员单元测试错误?的主要内容,如果未能解决你的问题,请参考以下文章

聊聊单元测试

聊聊单元测试

微服务下的单元测试和集成测试

如何快速调试 sCrypt 单元测试错误

java 使用idea进行单元测试

(转)用JUnit4进行单元测试