Silk4Test динамические записи полей
Можно ли динамически получать записи полей в Silk4Test?
Допустим, у нас есть эта запись:
[-] type testRec is record
[ ] string a
[ ] int b
[ ] string c
[ ] string d
И этот список:
list of string lsFields = {"a", "d"}
Есть ли способ установить только те поля, которые находятся в lsFields, на определенное значение? Допустим, мне нужно установить для них "ТЕСТ", как бы я это сделал? Это вообще возможно?
1 ответ
Да, это должно быть возможно с помощью @
-оператор, который позволяет выполнять содержимое строки как код 4Test.
Что-то вроде следующего (я просто набираю его с макушки головы, не уверен, правильно ли это синтаксически, в данный момент у меня нет доступа к Silk Test).
[ ] string fieldName
[-] for each fieldName in lsFields
[ ] rec.@fieldName = someValue
Этот код делает то, что он интерпретирует содержимое fieldName
как член rec
и назначает someValue
,
В зависимости от контекста вы можете захотеть обернуть его в do-except
-блок, потому что он выдаст исключение, если член не существует. Кроме того, вы также можете проверить с IsDefined
-функция, если запись содержит желаемое поле.