Ошибка модуля тестирования SQL-разработчика? - PullRequest
0 голосов
/ 21 февраля 2012

Я решил начать использовать модульное тестирование в PL / SQL, так как это может быть весело и улучшить качество кода.

Итак, я прочитал несколько доступных ресурсов и выбрал SQL Developer и его модульное тестирование.Возможности.

Я столкнулся с глупой проблемой, и Google подвел меня.

Я тестирую модуль простым пакетом.

--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 Ответ

0 голосов
/ 19 июня 2012

эта страница https://forums.oracle.com/forums/thread.jspa?threadID=2382730 говорит, что есть проблема с ref-курсорами и модульным тестированием ...

может быть связано.

...