Основы работы с ODT в TestComplete
В даннной статье попробуем создать тест для проверки правильности работы программы с физическими и юридическими лицами. Для решения данной задачи воспользуемся 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.
Запускаем выполнение скрипта.
Получаем протокол выполнения.













Комментировать