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-функция, если запись содержит желаемое поле.

Другие вопросы по тегам