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

Фотография

использование "составного" объекта в описании класса


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

#1 Anchutka

Anchutka

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

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Анна

Отправлено 05 октября 2009 - 13:40

Доброго времени суток.
Возможно мой вопрос покажется кому-то глупым, но я "новичок" в написании скриптов для QTP, в связи с чем и создана эта тема.
Собственно вопрос: можно ли при описании собственного класса использовать объекты типа "Запись"? Суть задачи тестирования такова, что необходимо создавать объекты имеющие следующую структуру: обязательное поле-идентификатор (например objID) и n-е кол-во составных объектов, содержащих некоторые признаки.

Пример структуры объекта obj:
obj.objID
obj.objField.objName
obj.objField.objValue
obj.objField.objUpd

Я предполагала, что это можно сделать следующим образом:

*код модуля класса*

Class knp_region
	Public id_reg
	Public objFields

	Private Sub Class_Initialize()
	   objFields = CreateObject("Scripting.Dictionary")
	   objFields.Add "Name_Reg","FieldValue=;Upd=0"
	   objFields.Add "Code_Reg","FieldValue=;Upd=0"
	End Sub
End Class

Public function CreateRegion()
	  Set CreateRegion = New knp_region
End Function

*код скрипта*

Dim objRegion

Set objRegion = CreateRegion()

В результате при выполнении скрипта возникает ошибка
"Недопустимое число аргументов или присвоение значения свойства: 'objFields'

Function file: C:\Program Files\HP\QuickTest Professional\Tests\Objects.qfl
Line (..): " objFields = CreateObject("Scripting.Dictionary")"."

Подскажите, пожалуйста, что я не так делаю?
  • 0

#2 gralex

gralex

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

  • Members
  • Pip
  • 52 сообщений
  • ФИО:Груба Алексей

Отправлено 05 октября 2009 - 14:05

Dictionary - это тоже объект. Соответственно, в блоке инициализации класса необходимо использовать Set при установке значения переменной
Private Sub Class_Initialize()
	   Set objFields = CreateObject("Scripting.Dictionary")
	   objFields.Add "Name_Reg","FieldValue=;Upd=0"
	   objFields.Add "Code_Reg","FieldValue=;Upd=0"
	End Sub

  • 0

#3 Anchutka

Anchutka

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

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Анна

Отправлено 05 октября 2009 - 14:15

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


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

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