В данной статье попробуем создать тест для проверки правильности работы программы с физическими и юридическими лицами. Для решения данной задачи воспользуемся ODT. Здесь мы будем хранить данные о физических и юридических лицах. Для этого необходимо создать два класса FL и UL для хранения данных о физических и юридических лицах соответственно. Также нам потребуется создать дополнительный класс Doc для хранения информации о документах, например, паспорт физического лица.
Структура класса FL будет такая:
- FirstName (Имя);
- LastName (Фамилия);
- BirthDay (Дата рождения);
- Docs (Массив документов).
Структура класса UL:
- Name (Наименование);
- Docs (Массив документов).
В классах используется не один элемент для хранения документа, а целый массив, т.к. субъект может иметь несколько разных документов.
Структура класса Doc:
- Name (Наименование документа);
- RegNum (Регистрационный номер);
- Series (Серия);
- Number (Номер).
Для начала создаем новый проект Create a New Project


Вызываем контекстное меню в пункте Test в окне Project Explorer

Выбираем Add / New Item… и выбираем ODT

Добавим новый класс ODT. Для этого вызываем контекстное меню в пункте Classes. Далее выбираем New Item

Чтобы изменить имя нового класса, необходимо нажать F2 и ввести новое имя
Таким же способом добавляем свойства класса.
Чтобы добавить в качестве свойства массив элементов необходимо выбрать в качестве значения — (Array)
Создаем все три выше описанных класса, а также добавляем все свойства классов.

Добавим в данные ODT новую группу. Назовем ее Test.
Для созданной группы добавим пять элементов и назначим им соответствующие классы:
- Ivanov;
- Petrov;
- Sidorov;
- Microsoft;
- Oracle.
Далее заполним для них данные. Для каждого филического лица добавим паспорт и ИНН, а для юридичеких лиц ИНН и ОГРН.


Теперь попробуем сделать вывод информации об всех субъектах в протокол выполнения. На практике данный способ может использоватся для более полезных целей, например, для проверки ввода данных в поля базы данных.
procedure Show;
var
Folder, Doc;
i: integer;
begin
case Self.ClassRef of
'FL': begin
Log.Message('Физическое лицо');
Log.Message('Имя ' + Self.FirstName);
Log.Message('Фамилия ' + Self.LastName);
Log.Message('Дата рождения ' + Self.BirthDay);
end;
'UL': begin
Log.Message('Юридическое лицо');
Log.Message('Наименование ' + Self.Name);
end;
end;
Folder: = Log.CreateFolder('Документы');
Log.PushLogFolder(Folder);
for i:=0 to Self.Docs.Count-1 do begin
Doc: = Self.Docs.Items(i).Value;
Log.Message(Doc.Name);
Log.Message('Регистрационный номер ' + Doc.RegNum);
Log.Message('Серия ' + Doc.Series);
Log.Message('Номер ' + Doc.Number);
end;
Log.PopLogFolder;
end;
В процедуре Main добавляем строчку ODT.Data.Run;. Она необходима для обхода данных ODT.
procedure Main;
begin
try
ODT.Data.Run;
except
Log.Error('Exception', ExceptionMessage)
end;
end;

Для классов FL и UL добавляем метод Show и назначаем ему написанную нами процедуру.

Для каждого элемента включаем выполнение метода при обходе структуры ODT.

Настроим наш проект. Для этого кликнем два раза на пункте Test в окне Project Explorer. Откроется новая вкладка, в которой нам необходимо задать выполняемую по умолчанию процедуру. Выберем процедуру Main.


Запускаем выполнение скрипта.
Получаем протокол выполнения.
