Перейти к содержимому

Фотография

Сравнение в test complete тектовых значений полей в разных копиях прог


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 Akmas

Akmas

    Новый участник

  • Members
  • Pip
  • 31 сообщений

Отправлено 16 января 2012 - 06:11

В общем, ситуация такая - нужно написать скрипт, который вводит информацию в базу данных, затем запускает вторую копию программы, открывает введённую запись и проверяет корректность заполнения полей во второй копии программы. Написал скрипт, при котором последовательно проводится проверка каждого поля, и в случае несовпадения полей в лог выводится ошибка с указанием введённого в первую копию значения и значения сответствующеого поля во второй копии. Все текстовые значения полей совпадают, но в лог для всех полей всё равно выводится ошибки, как будто они не совпадают. Вот пример кода для двух полей:
n1:=Sys.Process('MainPr').WinFormsObject('FormReestrLic').WinFormsObject('tcTabMain').WinFormsObject('tabPage1').WinFormsObject('tableLayoutPanel1').WinFormsObject('gbPredp').WinFormsObject('tableLayoutPanel2').WinFormsObject('tstbUchred').WinFormsObject('split').WinFormsObject('SplitterPanel', '', 2).WinFormsObject('content');
n2:=Sys.Process('MainPr', 2).WinFormsObject('FormReestrLic').WinFormsObject('tcTabMain').WinFormsObject('tabPage1').WinFormsObject('tableLayoutPanel1').WinFormsObject('gbPredp').WinFormsObject('tableLayoutPanel2').WinFormsObject('tstbUchred').WinFormsObject('split').WinFormsObject('SplitterPanel', '', 2).WinFormsObject('content');
if n1.text<>n2.text then begin
 Log.Error('Учредители не совпадают; введённое значение: '+n1.text+' Во второй копии программы значение: '+n2.text);
 oshibka:=true;
end;

n1:=Sys.Process('MainPr').WinFormsObject('FormReestrLic').WinFormsObject('tcTabMain').WinFormsObject('tabPage1').WinFormsObject('tableLayoutPanel1').WinFormsObject('tableLayoutPanel6').WinFormsObject('tsTextBox3').WinFormsObject('split').WinFormsObject('SplitterPanel', '', 2).WinFormsObject('content');
n2:=Sys.Process('MainPr', 2).WinFormsObject('FormReestrLic').WinFormsObject('tcTabMain').WinFormsObject('tabPage1').WinFormsObject('tableLayoutPanel1').WinFormsObject('tableLayoutPanel6').WinFormsObject('tsTextBox3').WinFormsObject('split').WinFormsObject('SplitterPanel', '', 2).WinFormsObject('content');
if n1.text<>n2.text then begin
 Log.Error('Количество листов (лиц) не совпадает; введённое значение: '+n1.text+' Во второй копии программы значение: '+n2.text);
 oshibka:=true;
end;
Так почему тест комплит считает разными одинаковые текстовые значение соответствующих полей в разных копиях программы.
Пробывал вводить дополнительные переменные (одной приравнивал значение поля первой копии, другой - втрой копии) - всё равно он их почему-то различает.
Test complete версии 6.5
  • 0

#2 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 16 января 2012 - 07:30

Если свойство text возвращает .NET'овскую строку, т.е. объект System.String, то его надо сконвертировать в обычную строку, используя свойство OleValue:
if n1.text.OleValue <> n2.text.OleValue then begin


  • 1

#3 Akmas

Akmas

    Новый участник

  • Members
  • Pip
  • 31 сообщений

Отправлено 16 января 2012 - 08:13

Если свойство text возвращает .NET'овскую строку, т.е. объект System.String, то его надо сконвертировать в обычную строку, используя свойство OleValue:

if n1.text.OleValue <> n2.text.OleValue then begin

Спасибо большое, теперь всё работает.
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных