Как установить значения массива в groovy, используя утверждение скрипта
Я пишу утверждение сценария, чтобы увидеть, содержится ли значение элемента в списке массивов, и если это так, оно проходит.
Когда я печатаю элемент:Number, я получаю пример [1,2,3,3]
как массив. Если Number содержит, скажем, 3, сценарий должен пройти.
Я написал ниже код, который терпит неудачу, вероятно, потому что записанное значение является списком массива, как утверждать значение массива?
def response = messageExchange.getResponseContent()
def xml = new XmlSlurper().parseText(response)
def invoiceNumber= xml.'**'.findAll { it.name() == 'Number'}
log.info "$invoiceNumber"
assert invoiceNumber.contains(1)
1 ответ
Проблема в том, что invoiceNumber
это Collection
из groovy.util.slurpersupport.NodeChild
элементы вместо Integer
элементы. Вот почему contains(3)
сравнение никогда не возвращается true
,
Вы должны конвертировать массив groovy.util.slurpersupport.NodeChild
в массив целых чисел перед contains()
, вы можете сделать это с помощью оператора распространения точки NodeChild.toInteger()
так что ваш скрипт должен быть:
def response = messageExchange.getResponseContent()
def xml = new XmlSlurper().parseText(response)
def invoiceNumber= xml.'**'.findAll { it.name() == 'Number'}
log.info "$invoiceNumber"
// convert the array to array of integers
invoiceNumber = invoiceNumber*.toInteger()
// now you can perform the assert correctly
assert invoiceNumber .contains(3)
Надеюсь, поможет,