0

我正在编写脚本断言以查看元素值是否包含在数组列表中,如果包含,则通过。

当我打印元素:数字时,我得到了一个[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)
4

1 回答 1

1

问题是这invoiceNumber是一个Collection元素groovy.util.slurpersupport.NodeChild而不是Integer元素。这就是contains(3)比较永远不会返回的原因true

您必须在 之前将数组转换groovy.util.slurpersupport.NodeChild为整数数组contains(),您可以使用扩展点运算符 an 来完成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)

希望能帮助到你,

于 2016-08-30T07:09:10.387 回答