Я решил начать использовать модульное тестирование в 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 - есть идеи?